Windows でファイルバックアップを取りたい時、コピーしてリネイムするのが面倒だったので
右クリックの「送る」で簡単にバックアップする方法のメモです。
やる事
- バックアップするbatファイル作成
- 右クリックしたときの「送る」メニューに追加
バックアップするbatファイル作成
下記内容でバッチファイルを作成する
@echo off
if exist "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_10%~x1%" (GOTO NOT_MAKE)
if exist "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_09%~x1%" (GOTO MAKE_10)
if exist "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_08%~x1%" (GOTO MAKE_09)
if exist "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_07%~x1%" (GOTO MAKE_08)
if exist "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_06%~x1%" (GOTO MAKE_07)
if exist "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_05%~x1%" (GOTO MAKE_06)
if exist "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_04%~x1%" (GOTO MAKE_05)
if exist "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_03%~x1%" (GOTO MAKE_04)
if exist "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_02%~x1%" (GOTO MAKE_03)
if exist "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_01%~x1%" (GOTO MAKE_02)
echo F |xcopy "%~f1" "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_01%~x1%" /K /Y
exit
:MAKE_10
echo F |xcopy "%~f1" "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_10%~x1%" /K /Y
exit
:MAKE_09
echo F |xcopy "%~f1" "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_09%~x1%" /K /Y
exit
:MAKE_08
echo F |xcopy "%~f1" "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_08%~x1%" /K /Y
exit
:MAKE_07
echo F |xcopy "%~f1" "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_07%~x1%" /K /Y
exit
:MAKE_06
echo F |xcopy "%~f1" "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_06%~x1%" /K /Y
exit
:MAKE_05
echo F |xcopy "%~f1" "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_05%~x1%" /K /Y
exit
:MAKE_04
echo F |xcopy "%~f1" "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_04%~x1%" /K /Y
exit
:MAKE_03
echo F |xcopy "%~f1" "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_03%~x1%" /K /Y
exit
:MAKE_02
echo F |xcopy "%~f1" "%~d1%~p1%~n1_old_%date:~-10,4%%date:~-5,2%%date:~-2,2%_02%~x1%" /K /Y
exit
:NOT_MAKE
echo msgbox "バックアップは10世代まで " > %TEMP%/msgboxtest.vbs & %TEMP%/msgboxtest.vbs
このバッチで作成されるバックアップファイル名は下記の様に、拡張子の前にoldと日付と連番を入れるようにしています。
<ファイル名>_old_YYYY_MMDD_NN.<拡張子>
※NNは連番
好みがあると思うので、そこは自由に変えてみてください。
右クリックしたときの送るにバッチファイルを指定
「Windows」+「R」でファイル名を指定して実行を開き、「shell:sendto」と入力し「OK」をクリック。
そうすると、SendToのフォルダが開くので、作成したバッチファイルのショートカットか、batファイル自体を置く。
これで、対象ファイルを右クリックして「送る」メニューからバックアップファイルを作成できます。
xcopy でコピーしているので、ネットワークドライブ上のファイルやUNCパスのファイルもコピーできます。