0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windowsで簡単にバックアップファイルを作成する

Last updated at Posted at 2020-02-17

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パスのファイルもコピーできます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?