バッチファイルでファイルの最終更新日時を取得する方法

本記事では、バッチファイルを用いて特定のファイルの最終更新日時を取得する方法を紹介します。

ファイル名を指定して最終更新日時を取得する方法

以下のコマンドでファイル名を指定して、最終更新日時を取得することができます。「test.txt」の部分を、取得したいファイル名に変更して使用してください。

@echo off
for %%i in (test.txt) do set "UPDATE=%%~ti"
echo %UPDATE%
pause

以下の通り、最終更新日時が文字列として取得できていることがわかります。取得される情報としては日付と時刻が抽出されます。

最終更新日時を「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文字を切り出す操作になっており、これで日を出力できます。

スポンサーリンク

シェアする

フォローする