バッチファイルで日付/時間をファイル名につけて、ファイルをコピーする
ファイルに(YYMMDD_HHMMSS)のような日付/時間をつけてコピーする
Windowsのバッチファイルでファイルをコピーする時に、日付と時刻をファイル名につけてコピーするには、「date」や「time」などの変数して、その中の値を取得します
C:\>echo %date% 2020/05/05 C:\>echo %time% 13:24:45.77
以下の場合では、「set time_tmp=%time: =0%」で「3:30」のような一桁の数字を場合は、「03:30」のように、空白の場合は0に変換しています。あとは、必要な日付/時間の値を取得しています
echo off set time_tmp=%time: =0% echo %date% set date_now=%date:~0,4%%date:~5,2%%date:~8,2% echo %time% set time_now=%time_tmp:~0,2%%time_tmp:~3,2%%time_tmp:~6,2% echo %date_now% echo %time_now% pause
【出力結果】
C:\>echo off 2020/05/05 13:32:47.82 20200505 133247
上記の例で日付/時刻を取得できているので、あとは「copy」コマンドでファイルをコピーすれば、日付/時刻をファイル名につけたファイルがコピーできます。
「filename」・「SourceFile」・「TargetFile」の変数を使用する環境によって変更していただけば、OKかと思います
setlocal echo off set time_tmp=%time: =0% set DateNow=%date:~0,4%%date:~5,2%%date:~8,2% set TimeNow=%time_tmp:~0,2%%time_tmp:~3,2%%time_tmp:~6,2% set filename=test_%DateNow%_%TimeNow%.txt set SourceFile=C:\Users\admin\test\test.txt set TargetFile=D:\Backup\%filename% copy "%SourceFile%" "%TargetFile%" PAUSE endlocal
ディスカッション
コメント一覧
まだ、コメントがありません