ファイルのバックアップを取る時、手作業でやっていませんんか?
今回はバックアップを簡単に作ってくれるバッチファイルを作成してみました!
さかい
はじめまして、さかいと申します。
インスタで『自動化オタクの仕事術』を紹介している自分が解説させていただきます!
目次
実行イメージ
バッチを実行するとどんな動きをするか説明していきます
①ファイルをドラッグ&ドロップ
ファイルをバッチにドラッグ&ドロップすると、backupフォルダが作成されます。
backupフォルダ内にはドラッグ&ドロップされたファイルがコピーされます。
※いつ作成されたかわかるように、日付(2月23日 → 0223)をつけています
②もう一度やってみる
同じ日にもう一度バックアップを取る時があると思います。
その場合は、日付の後に連番がつきます。
数字が大きくなっていくので、どのファイルが最新か分かりやすいと思います。
次に、このバッチの作成方法を紹介していきます
バッチの作成方法
1.メモ帳を用意
2. 以下のコードをメモ帳に貼り付け
以下のコードをメモ帳に貼り付けます。
バックアップのフォルダ名を変えるときは、4行目の=の後を変えてください
@echo off
setlocal enabledelayedexpansion
rem バックアップフォルダ名
set folderName=backup
rem カレントディレクトリにフォルダがない場合作成
if not exist "%cd%\%folderName%\" (
mkdir "%cd%\%folderName%"
)
set "backupFolder=%cd%\%folderName%\"
:LOOP
rem ファイル名がない場合、処理終了
if "%~nx1" == "" goto :END
rem /を削除し、日付を設定
set "V=%DATE:/=%"
rem 末尾に日付をつけてファイル名を整形
set "fileName=%~n1_%V:~4,8%%~x1"
rem 連番を追加
set "counter=1"
:CHECK
rem 同じファイル名がある場合、連番を追加する
if exist "!backupFolder!%fileName%" (
set "fileName=%~n1_%V:~4,8%_%counter%%~x1"
set /a "counter+=1"
goto :CHECK
)
rem ファイルをコピーする
copy "%~nx1" "!backupFolder!%fileName%"
rem 次のファイルに移動
shift
goto :LOOP
:END
endlocal
3. 名前を付けて保存を開く
※ショートカット
Ctrl + Shift + S
4. ファイル名を変更し保存
①.の後ろを「bat」に変更します
※フォルダ作成のところは任意でOKです
②文字コードを「ANSI」に変更します
6. 完成
ファイルのアイコンが歯車になっていればOKです!
後はファイルを選択して、ドラッグ&ドロップすると、バックアップが作成されます
まとめ
いかかでしたか。
私自身、ファイルのバックアップを取ることが多く、簡単にやれないかと思って作ってみました。
ファイル名の日付の付け方や連番の付け方など、こういう方がいい!など要望があれば
コメントやインスタのメッセージにご連絡お願いいたします。