⚙️
現在日付時刻をつけて保存するバッチ
現在日付時刻をつけてファイルを保存するバッチ
日付時刻をつけたいファイルをバッチにドラッグ&ドロップすると、元ファイルと同階層に日付時刻付きのファイルができます。
backup.bat
@echo off
rem "filecopy batch"
set d=%date%
set yyyy=%d:~-10,4%
set mm=%d:~-5,2%
set dd=%d:~-2,2%
set t=%time: =0%
set hh=%t:~0,2%
set mn=%t:~3,2%
set ss=%t:~6,2%
set ADDSTRING=%yyyy%%mm%%dd%_%hh%%mn%%ss%
copy %1 "%~d1%~p1%~n1_%ADDSTRING%%~x1"
追記
サーバーで動かすと「アクセス拒否」になったので最後のcopy
を以下のように直しました。
- NG
copy %1 %~n1_%ADDSTRING%%~x1
- OK
copy %1 %~d1%~p1%~n1_%ADDSTRING%%~x1
追記2
フォルダ名に半角スペースが含まれていると構文エラーになるので引用符を付けました。
可能な限り、フォルダ名をつけるときに半角スペースを入れないようにするのが望ましいです。
pause
すると分かりますが、copy
の直後の%1
は引用符がついているので、二つ目だけ引用符がついています。
追記3
複数のファイルを一括で処理できるようにするには、copy
部分を以下のようにfor文に変更します。
echo ----------------------------------------
for %%a in (%*) do (
echo %%a
copy %%a "%%~da%%~pa%%~na_%ADDSTRING%%%~xa"
)
echo ----------------------------------------
Discussion