バッチファイルで
・指定したフォルダ配下の
・更新日付が最新のファイルを取得
できます!
コード
ここでは例として
・デスクトップにあるフォルダ「test」配下の
・「対象ファイル(今回はCSVファイル)」の
・更新日付が最新のファイルを取得
します。
@echo off
rem 対象フォルダ
set targetFolder=C:\Users\user\Desktop\test
rem 対象ファイル
set targetFile=*.csv
rem 対象ファイル数を取得するコマンドを作成
set getFileCountCmd="dir %targetFolder%\%targetFile% /a-d /b | find /c /v """
rem 対象ファイル数を取得
for /f %%a in ('%getFileCountCmd%') do (
set fileCount=%%a
)
rem 対象ファイルが存在しない場合は処理終了
if %fileCount% equ 0 (
echo 対象ファイルが存在しないため、処理を終了します。
echo.
pause
exit
)
rem 対象ファイルを(更新日付で降順で)取得するコマンドを作成
set getFileListCmd="dir /a-d /o-d /b %targetFolder%\%targetFile%"
rem 対象ファイルの数だけ繰り返し
for /f %%a in ('%getFileListCmd%') do (
rem 更新日付が一番新しいファイルを取得
set latestFile=%%a
rem for文を抜ける
goto break
)
:break
echo 更新日付が一番新しいファイル:%latestFile%
echo.
pause
exit
実行結果
指定したフォルダ配下の更新日付が最新のファイルを取得できました。
※「*.csv」で更新日付が最新のファイルである「002.csv」を取得できました。
参考①
「対象ファイル数を取得」の詳細は、以下の記事をご確認ください。
参考②
上記で使用した以下の詳細は、公式サイトをご確認ください。
●「dir」コマンド
●「for」コマンド(forコマンド)
●gotoコマンド