更新日が本日のファイルだけをコピー(移動)するバッチ

今日更新したxlsファイルだけを移動や、コピーするにはどうしたらいいかという質問。

batファイルで質問です。 - 今日更新したxlsファイルだけを移動や、... - Yahoo!知恵袋

batファイルで質問です。hirokun19811201さん

batファイルで質問です。

今日更新したxlsファイルだけを移動や、コピーするにはどうしたら宜しいでしょうか?

C:\DATAフォルダ内で

5/12に
C:\DATA\A090512.xls
を作り、
5/11に
C:\DATA\A090511.xls
を作り、
5/10に
C:\DATA\A090510.xls
を作りました。


C:\DATA\A090512.xlsだけを

空のE:\に移動し、
空のF:\にコピーします。

move /y C:\DATA\A090512.xls E:\
xcopy /d /y C:\DATA\A090512.xls F:\

だと、毎日書き換えないといけないし、

move /y C:\DATA\A*.xls E:\
xcopy /d /y C:\DATA\A*.xls F:\

だと、いらないものも移動します。

どうしたら、いいでしょうか?

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1326136753


例ではファイル名に日付が入っていますが、入らない場合もあり得ますので、ファイルのタイムスタンプが本日のものを対象とするバッチファイルの例です。

:------------------------- todaymove.bat
@echo off
for %%F in ( C:\DATA\A*.xls ) do call :sub "%%F" %%~tF
exit /b

:sub
if not %2==%date% goto :EOF
xcopy /d /y  "%~f1" F:\
move /y  "%~f1" E:\
goto :EOF

例ではmoveが先になっていたので順序を入れ替えています。