バッチファイルでログ出力する時に、ファイル名に日付や時間にしてログ出力したい時があると思います。そんなに難しくありませんので、サクッと作りましょう。
ファイル名に日付を指定する
まずは標準的なパターンから。ログファイルを出力する際に、YYYYMMDD.logと言ったファイル名にする方法です。
このままバッチファイルにコピペして実行すると、実行日付のログファイルが出力されます。ログファイルの中身が「Hello world」ならOKです。
そんなに難しいことはやっていません。「date」コマンドでパソコンに設定されている日付を出力し、そこから必要な年月日を切り取っただけです。ちょっと年・月・日で分解するとこんな感じになります。
PAUSE
これをコマンドプロンプトで実行してみると、次の様な結果になります。
いきなり色々と詰め込むとパンクしてしまうかもなので、とりあえずコピペして使ってみて下さい。
ファイル名に日付と時間を指定する
先ほどは日付だけでしたが、今度は日付と時間を指定してYYYYMMDDHHMMSS.logと言ったファイル名にする方法です。
これもコピペでOKです。実行すると、YYYYMMDDHHMMSS.logと言う名称のログファイルが出力されます。ログファイルの中身が「Hello world」OKです。
時間まで出力する際には少し工夫しています。コメントアウトにも記載していますが、時分秒のゼロ埋めです。結果だけ言うと、例えば、9時10分23秒に実行するときにHHのところをゼロ埋めしたログファイルが出力されます。
時分秒についてはゼロ埋めしないと半角スペースが入ってしまうので、色々と面倒なことになります。今回は説明を省きますが、まあこんなもんだと思ってコピペして使って下さい。
ログファイルに追記したい
さて、ログファイルに追記したい場合はどうすれば良いでしょうか。時分秒まで指定して出力すればファイル追記はほぼあり得ないと思いますが、ログファイルが日付だけの名称であれば、追記することは大いにあり得ます。例えば、日付名のみのログファイルの1行目に「Hello world」、2行目に「こんにちは」と続けて記載したい場合はこの様に記載します。
いやいや、ほとんど変わらへんやん!と思うでしょうが、よーく目を凝らしてみて下さい。
何かちょっと変わってますね。標準出力のコマンドは同名のファイルがあると上書きしますが、このように「>>」としてあげるだけで追記してくれます。理屈はわからなくてOKなので、取りあえずコピペして使ってみて下さい。
編集後記
エンジニアが新人や若手の頃からバッチファイルを使ってると、年数経っても割と覚えていたり、ちょっと間が空いても調べればすぐできたりすることが多いので、早い段階から覚えておいた方が良いですね。ちょっと工夫すれば結構便利なこともありますし、運用・保守がメインの現場でも、バッチファイルが使えると、無駄な作業を削減出来たりするので、スキルアップにもつながります。
とは言え、いきなりは敷居が高いので、基本的にコピペOK、改変しやすいソースを紹介していこうかなと思います。
.