コピペプログ

VBA、VBS、バッチファイルなどの備忘録と日記です。

【bat】最新ファイルだけをコピーする

定期的にCSVファイルなどを出力している場合、「○○_yyyymmdd.csv」という感じのファイル名で保存されることが多いかと思います。

その中で最新のファイルだけをコピーできると色々と仕事が捗る人用のバッチです。

特定のファイル名を含むファイルの中から日付が最新のものを検索し、特定のフォルダへコピーします。

毎月吐き出されるデータを加工して使用する場合は元データからコピーを取って作業するので、バッチを叩けば最新ファイルがコピーされるとわざわざ出力先からコピーして作業用のフォルダに張り付ける作業がなくなります。

出力データを色々な人が使用する場合は元データを加工すると大問題になってしまうので必ず自分の作業フォルダにコピーして使用しましょう。

例えばcsvファイルの場合は('dir /b /O:D %src%.')の%src%¥を[%src%¥.csv]とします。

echo off

setlocal
set src=コピー元の絶対パス
set cppath=コピー先の絶対パス

@echo  ファイルコピー中

for /F "tokens=1* delims=" %%a in ('dir /b /O:D %src%\.*') do set fname=%%a

copy /Y "%fname%" %cppath\%fname%


endlocal