cmdのbatを使ってフォルダをCOPYして7zipで圧縮し最後に削除する方法
2016/08/04
共有のフォルダやファイルをコピーして自動的に7zipで圧縮してバックアップを取りたいと思ってbatのスクリプトを用意しました。 サーバ運用ではVBS等を用意してファイルやフォルダのバックアップをしていましたが、個人的に使う分にはbatで十分だと思います。
以下がBATファイルの中身です。
使用は自己責任でお願いします。大事なファイルやフォルダが消えても一切責任は取れません。
使用前に必ず対象のフォルダをバックアップやコピー等してから、ご自身の環境に適したパスを設定し動作を検証してください。
スポンサーリンク
BATファイルの中身
@ECHO OFF
SET /p PW="Enter password: "
SET DATENAME=%DATE:/=%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
SET TARGETZIP=C:\bkup\myfolder%DATENAME%.7z
SET TARGETPATH="C:\test\"
SET TARGETDIR="myfolder"
net use "\\192.168.0.101\share" %PW% /user:admin
xcopy /S /Y /I "\\192.168.0.101\share\%TARGETDIR%" %TARGETPATH%%TARGETDIR%
"C:\Program Files\7-Zip\7z.exe" a %TARGETZIP% %TARGETPATH%%TARGETDIR%
rmdir /S /Q %TARGETPATH%%TARGETDIR%
説明
- まずSET /pでコマンドプロンプト上の入力を求めます。ここでは共有フォルダにアクセスする為のログインパスワードです。
- DATENAMEに年月日と時間の値を設定します。
- TARGETZIPでZIPファイルのパスを指定し圧縮ファイル名に年月日を追加してます。
- TARGETPATHで共有フォルダからどのローカルフォルダの下にコピーするか指定します。
- TARGETDIRでコピー対象のフォルダを指定します。 上記例ではmyfolderというフォルダが対象です。
- 共有フォルダのパスと接続に必要なユーザー名です。必要に応じて変更する。
- XCOPYで共有からフォルダをコピー。(ROBOCOPYでも良いかもしれません)
- 7zipでコピーしたフォルダを圧縮(-tzipパラメタで拡張子がZIPで圧縮可能です。詳しくはここ)
- 最後にコピーしたフォルダを削除
上記のBATは一例です。必要に応じて好きに修正してください。
また、しつこいですが、念のため必ず対象のフォルダをバックアップしてからお試しください。
万が一大切なファイルが消えてしまった場合、フォルダが残っていたら右クリックしてプロパティから以前のバージョンに復元を試してみてください。
不安な方は仮想マシン環境にて検証をおすすめします。スナップショットで復元できるポイントを作成してからお試しください。
スポンサーリンク
スポンサーリンク