本記事では、バッチファイルを使って特定のファイルの最終更新日時を取得する方法を詳しく解説します。基本的な取得方法から、実用的な形式への変換まで、具体的なコード例と丁寧な説明で理解を深めます。
目次
ファイル名を指定して最終更新日時を取得する方法
まずは、ファイル名を指定して最終更新日時を取得する方法から始めましょう。
@echo off
for %%i in (test.txt) do set "UPDATE=%%~ti"
echo %UPDATE%
pause
このスクリプトでは、test.txtの部分を調べたいファイル名に置き換えて使用します。
実行すると、以下のように最終更新日時が「YYYY/MM/DD HH:MM」の形式で表示されます。
最終更新日時を「YYYYMMDD(年月日)」の形式で出力する
取得した日時情報をファイル名などに活用する場合、「/」や「:」などの記号が含まれていると不便です。そこで、最終更新日時を「YYYYMMDD」形式に変換する方法を見ていきましょう。
例えば2022年12月31日であれば「20221231」と出力することを目指します。
このときは文字列の切り出しを行う必要があります。詳細は以下の記事にまとめていますので、参照してみてください。
以下のように記述することで、YYYYMMDD(年月日)の形式で最終更新日を出力できます。
@echo off
for %%i in (test1.txt) do set "UPDATE=%%~ti"
set YYYYMMDD=%UPDATE:~0,4%%UPDATE:~5,2%%UPDATE:~8,2%
echo %YYYYMMDD%
pause
以下が結果です。
「%UPDATE:~0,4%」は元の文字列の1文字目(インデックス0)から、4文字を切り出す操作になっており、これで西暦を出力できます。
「%UPDATE:~5,2%」は元の文字列の6文字目(インデックス5)から、2文字を切り出す操作になっており、これで月を出力できます。
「%UPDATE:~8,2%」は元の文字列の9文字目(インデックス8)から、2文字を切り出す操作になっており、これで日を出力できます。
今回の機能の応用方法
以下のような応用を行うことで、ファイルの管理や効率化できます。
- 取得した最終更新日時を元に、古いファイルを自動削除する
- ファイル名に最終更新日時を含めて、バージョン管理を容易にする
- 定期的に特定のファイルの更新日時をチェックし、変更があった場合に通知を送る
バッチファイルの文字列操作機能と組み合わせることで、ファイルの最終更新日時を自在に活用できます。ぜひ、この記事で紹介した方法を参考に、ご自身のニーズに合わせて応用してみてください。
まとめ
この記事では、バッチファイルを用いてファイルの最終更新日時を取得し、実用的な形式に変換する方法を紹介しました。これらのテクニックを活用することで、ファイルの管理や自動処理などを効率化できます。
参考
文字列の切り出しなど、さらに高度な文字列操作については、以下の記事も参考にしてください。