Windowsでフォルダを差分バックアップするバッチを作ってみた

みなさん、Windows の ROBOCOPY をご存知ですか?

おにいさんは、日々のバックアップでフォルダ内の差分バックアップなどに利用しています。

ROBOCOPY を活用した Windows バッチ を公開します。
自己責任で自由にご利用ください。
みなさんの生活が少し楽になるとよいですね。


ROBOCOPYバッチ

以下の変数を各自の環境に合わせて書きかえると、バッチをそのまま実行できます。


BATCH Environments Information
NM_BATCH任意
optional

バッチ名称
Batch Name
LOG_FILE必須
must
バッチログファイルの絶対パス
Absolute path of batch log file
ROBOCOPY Parameter Information
PARAM_PATH_FOLDER_FROM必須
must
コピー元フォルダの絶対パス
Absolute path of folder from which is copied.
PARAM_PATH_FOLDER_TO必須
must
コピー先フォルダの絶対パス
Absolute path of folder to which is copied.
PARAM_PATH_LOG_FILE必須
must
ROBOCOPYログファイルの絶対パス
Absolute path of ROBOCOPY log file.
PARAM_ROBOCOPY_OPTION任意
optional
ROBOCOPYのオプション
ROBOCOPY options


@ECHO OFF
REM ***************************************************************************
REM * BATCH: ROBOCOPY Sample                                                  *
REM *                                                                         *
REM * Description:                                                            *
REM *                                                                         *
REM *-------------------------------------------------------------------------*
REM * Version : 1.0.0                                                         *
REM * History : 1.0.0 2018/08/19 Created                                      *
REM *         :                                                               *
REM *         :                                                               *
REM * Copyright(C) 2018 おにいさん All rigth reserved.                         *
REM * Site    :Software Engineer Memo                                         *
REM *          https://hillbasesoftmemo.blogspot.com/                         *
REM ***************************************************************************


REM ------------------------------------
REM   BATCH Environment Information
REM ------------------------------------
SET NM_BATCH=ROBOCOPY Sample
SET LOG_FILE="バッチログファイルの絶対パス"

ECHO [%NM_BATCH%] BATCH START %DATE% %TIME% > %LOG_FILE%

ECHO [%NM_BATCH%] --------------------------------------------------- >> %LOG_FILE%
ECHO [%NM_BATCH%] BATCH Environmet Information                        >> %LOG_FILE%
ECHO [%NM_BATCH%] NM_BATCH                =%NM_BATCH%                 >> %LOG_FILE%
ECHO [%NM_BATCH%] LOG_FILE                =%LOG_FILE%                 >> %LOG_FILE%
ECHO [%NM_BATCH%] --------------------------------------------------- >> %LOG_FILE%
ECHO [%NM_BATCH%] >> %LOG_FILE%

REM ------------------------------------
REM   ROBOCOPY Parameter Information
REM ------------------------------------
SET PARAM_PATH_FOLDER_FROM="コピー元フォルダの絶対パス"
SET PARAM_PATH_FOLDER_TO="コピー先フォルダの絶対パス"
SET PARAM_PATH_LOG_FILE="ROBOCOPYログファイルの絶対パス"
SET PARAM_ROBOCOPY_OPTION=/mir

ECHO [%NM_BATCH%] --------------------------------------------------- >> %LOG_FILE%
ECHO [%NM_BATCH%] ROBOCOPY Parameter Information                      >> %LOG_FILE%
ECHO [%NM_BATCH%] PARAM_PATH_FOLDER_FROM  =%PARAM_PATH_FOLDER_FROM%   >> %LOG_FILE%
ECHO [%NM_BATCH%] PARAM_PATH_FOLDER_TO    =%PARAM_PATH_FOLDER_TO%     >> %LOG_FILE%
ECHO [%NM_BATCH%] PARAM_PATH_LOG_FILE     =%PARAM_PATH_LOG_FILE%      >> %LOG_FILE%
ECHO [%NM_BATCH%] PARAM_ROBOCOPY_OPTION   =%PARAM_ROBOCOPY_OPTION%    >> %LOG_FILE%
ECHO [%NM_BATCH%] --------------------------------------------------- >> %LOG_FILE%
ECHO [%NM_BATCH%] >> %LOG_FILE%

ECHO [%NM_BATCH%] ROBOCOPY START %DATE% %TIME% >> %LOG_FILE%

ROBOCOPY %PARAM_PATH_FOLDER_FROM% %PARAM_PATH_FOLDER_TO% %PARAM_ROBOCOPY_OPTION% /log:%PARAM_PATH_LOG_FILE%

ECHO [%NM_BATCH%] ROBOCOPY END   %DATE% %TIME% >> %LOG_FILE%


ECHO [%NM_BATCH%] BATCH END   %DATE% %TIME% >> %LOG_FILE%
EXIT /b 0



最後に

いかがだったでしょうか。

上記のバッチファイルを Windows タスクスケジューラーのタスクに登録しておくことで、任意のタイミングでバックアップすることができます。仕事や自宅のフォルダをバックアップしたいときによいと思います。

また、Windows のバッチのひな形として活用できます。

自己責任で自由にご利用ください。

感想などをコメントに書いていただけるとうれしいです。


以上

最新

【PHP】スーパーグローバル変数 $_GET $_POST $_REQUEST

スーパーグローバル変数 $_REQUESTは、HTTPメソッドがGETとPOSTのいずれの場合もデータを取得することができる。 $_REQUEST['xxx'] $_GET['xxx'] $_POST['xxx'] ...