ps1ファイルを実行した時、自動でログを記録してくれることを祈る。
参考にしました:http://hangout.wp.xdomain.jp/powershell/start-transcript
以下わしが書いたもの。
$LOGNAME = "C:\logs\ps_batch.log"
# ログのパスと名前
$EXEDATE = get-date -format G
# 実行時間
Start-transcriptWrite-output "${EXEDATE}: 実行開始"
echo "Hello world"
Start-Sleep -s 10
# 小休止echo "Hello and Goodbye"
Start-Sleep -s 3
# 小休止Write-output "${EXEDATE}: 実行終了"
Stop-transcript
Read-Host "続けるには Enter キーを押してください..."
以下実行結果。
トランスクリプトが開始されました。出力ファイル: C:\Users\bladecatcher\Documents
\PowerShell_transcript.20190221135949.txt
2019/02/21 13:59:49: 実行開始
Hello world
Hello and Goodbye
2019/02/21 13:59:49: 実行終了
続けるには Enter キーを押してください...:
!?
あれ、C直下のフォルダにログを吐かせるつもりだったんだが。まぁいいや。
ちなみにC:\Users\bladecatcher\Documents配下にはきちんとログができていました。
んで、中身。
*********************
Windows PowerShell トランスクリプト開始
開始時刻: 20190221140005
ユーザー名 : bladecatcher-PC\bladecatcher
コンピューター : bladecatcher-PC (Microsoft Windows NT 6.1.7601 Service Pack 1)*********************
トランスクリプトが開始されました。出力ファイル: C:\Users\bladecatcher\Documents
\PowerShell_transcript.20190221135949.txt
2019/02/21 13:59:49: 実行開始
Hello world
Hello and Goodbye
2019/02/21 13:59:49: 実行終了
続けるには Enter キーを押してください...:*********************
Windows PowerShell トランスクリプト終了
終了時刻: 20190221140037*********************
なかなかいいですね。
個人的には、何のコマンドを実行したかも記録してほしいんだが…Linuxでいう、/bin/sh -x的なことをしたいんですよね。
サッとググった感じでは見つからなかった。もう少し調べてみる。