
【バッチファイルについてまとめてみた②】ログの出力方法と日時取得/ログファイル名に日時取得
こんにちは!
ALH福岡事業所のSHUMAです!
前回に引き続き【バッチファイルについて】書いていきます!

こちらは技術を持つ「人」にフォーカスしています!
前回の記事は下記リンクより!
1.ログ出力と日時取得
今回は、バッチファイルにおけるログの出力方法についてまとめたいと思います。バッチファイルをタスクスケジューラーに設定して自動で実行する場合、その実行結果や処理途中の状況などを把握するためにもログの出力は必要です。また、処理をした日時の出力方法も一緒にご紹介します。
2.日時の取得
@echo off
rem 日付取得
echo %date%
rem 時間取得
echo %time%
pause
出力画面はこちらです。

%date%
「yyyy/mm/dd」形式で出力されます
%time%
「hh:mm:ss.ff」形式で出力されます
2.ログの出力
ログの出力方法は、出力先のパスと出力するログファイル名を指定することで出来ます。(パスを指定せずログファイル名のみ指定した場合は、バッチファイルと同じ階層に出力されます)
また、出力するログを上書き更新するタイプ(>)と追記するタイプ(>>)があるので用途に合わせてどちらを使用するか決めましょう。
例として、デスクトップに「datetime.log」という現在の日時を記録するログファイルを2回実行して出力します。
【上書き更新タイプ】>
@echo off
rem 上書き更新タイプ
echo %date% %time% > C:\Users\デスクトップ\datetime.log
pause


1回目に出力した日時は上書きされます。
【追記タイプ】>>
@echo off
rem 追記タイプ
echo %date% %time% >> C:\Users\デスクトップ\datetime.log
pause


1回目に出力した日時は上書きされずに、2回目に実行した日時が追記されます。
3.ログファイル名に実行日時を取得する
ログファイルを日毎に出力したい場合は、ファイル名を実行した日時で作成することもできます。(例:20220225.log など)
方法はファイル名に%date%や%time%をつければ良いのですが、この2つのコマンドで取得される値には、ファイル名で使用できない「/」や「:」の記号が使用されている為、このまま実行しても正常にバッチの処理は出来ません。
そこで、「/」や「:」の記号を取り除いて数字だけを抽出して取得する方法があります。
@echo off
rem ファイル名に実行日付を取得するバッチ
echo %date% > C:\Users\デスクトップ\%date:~0,4%%date:~5,2%%date:~8,2%.log
pause
%date%で取得される値
「2022/02/25」
%date:~0,4%
→0文字目から4文字取得
%date:~5,2%
→5文字目から2文字取得
%date:~8,2%
→8文字目から2文字取得

上記のコマンドを使用することによって、ファイル名に日時の取得をすることが出来ます。時刻の取得も同じ方法で出来ます。

こちらは技術を持つ「人」にフォーカスしています!
↓ ↓ ↓ 採用サイトはこちら ↓ ↓ ↓
↓ ↓ ↓ ALHについてはこちら ↓ ↓ ↓
↓ ↓ ↓ もっとALHについて知りたい? ↓ ↓ ↓