おはようございます。こんにちは。こんばんは。
ミッド(@mid_v_lab)です
今日は効率化のPowerShellスクリプトを1つ紹介します。
簡単ですが、メッセージを変数に格納してログ出力するコードを紹介します。
コードはこれだ!!
#ログ変数の規定
$log = @()
#メッセージ格納
$log += “test1”
$log += “test2”
Write-Output $log | Out-File “.\log.txt”
exit
超簡単な仕組みとなっております。
「$log」を「@()」で配列指定して、「+=」でメッセージを追加していきます。
このコードを実行すると、スクリプトと同じフォルダに「log.txt」というログファイルが出力されます。
こんな感じ。
でもこれじゃあ味気ないので、ログファイルおよびメッセージに日付と時間を付けてみましょう。
コードはこれだ!!
#ログ変数の規定
$log = @()
#時間
$Today = Get-Date -Uformat %Y%m%d
#ログファイルの設定
$logfile = “.\” + $Today + “_log.txt”
#メッセージ格納
$log += $(Get-Date -Uformat %Y%m%d_%H:%M:%S) + ” test1″
$log += $(Get-Date -Uformat %Y%m%d_%H:%M:%S) + ” test2″
Write-Output $log | Out-File $logfile
exit
「$Today」に本日日付を入力しておきます。これを利用してログファイル名を規定。
各メッセージの前に「$(Get-Date -Uformat %Y%m%d_%H:%M:%S)」を入れて、日付+時間を入れてます。
これを実行すると、先ほどの「log.txt」の前に日付が付いたファイル名になり、ログファイルの中身も、日付+時刻となっているので、どれくらいの時間で処理が終わったのか分かります。
例えば、ログ出力のメッセージ以外にも、もう一つメッセージを格納する変数作っておいて、エラー時にその変数に文字を入れて、
その変数の文字入力があるかないかで、件名を変えたりすることもできます。
正常時件名:処理完了
異常時件名:処理異常終了
色々カスタマイズしてみてください。
ではでは