Windows フォルダをバックアップするコマンド(ROBOCPY)

サーバーやパソコン内のフォルダをバックアップしたい場合、Windowsに標準で搭載されている「robocopy」コマンドについて紹介する。

robocopyコマンドは、無料で高速にファイルのバックアップができる。高速な理由は変更されていないファイルはコピーしないため。ファイル数が多いフォルダの場合に特に効果がある。

スポンサーリンク

フォルダのバックアップコマンドの使用方法

robocopyコマンドの基本的な書式は下記となる。

ROBOCOPY コピー元 コピー先 [ファイル [ファイル]...] [オプション]
コピー元(指定必須)コピー元フォルダ (ドライブ:\パスまたは \\サーバー\共有\パス)。
コピー先(指定必須)コピー先フォルダ (ドライブ:\パスまたは \\サーバー\共有\パス)。
ファイル(指定任意)コピーするファイル (名前/ワイルドカード: 既定値は「*.*」)
※特定の種類(拡張子)のファイルのみを対象にするような場合に使用できる。
 PDFファイルのみの場合は「*.pdf」と指定する
オプション(指定任意)コピー時の詳細な挙動の設定を指定する

スポンサーリンク

robocopy のオプション

よく使うオプションは下記となる。

オプション引数説明
/MIRディレクトリ ツリーをミラー化する
/NP進行状況なし – コピーの完了率を表示しない
/R:n失敗したコピーに対する再試行数: 既定値は 1,000,000。”n”部分に数字を指定
/W:n再試行と再試行の間の待機時間: 既定値は、30 秒。”n”部分に数字を指定
/LOG+:ファイルログ ファイルに状態を出力する (既存のログ ファイルに追加する)。

スポンサーリンク

robodopy のサンプルコマンド

サンプル1 サーバーのフォルダをローカルにミラーリングする

robocopy "\\server\folder1" "c:\backup\folder1" /MIR /R:3 /W:5 /NP /LOG+:"c:\backup\robocopy_details.log"

解説

“\\server\folder1″のすべてのファイルを”c:\backup\folder1″にすべてコピーする。
/R:3、/W:5:コピーに失敗した場合は3回まで5秒間隔で再試行する
/NP:コピーの状況をコマンド上に表示しない
/LOG+~: “c:\backup\robocopy_details.log” に実行状況のログを過去の実行状況を残して追記する。

スポンサーリンク

フォルダのバックアップコマンド バッチサンプル

フォルダのバックアップのバッチサンプルを紹介する。

下記のサンプルをメモ帳などで作成して、ファイル名を「sample.bat」などとして保存する。念のため、コピー先、コピー元のファイルは別にバックアップして試すこと。特にコピー先に既存のフォルダを指定した場合、既存のファイルが削除される可能性があるため、注意。

コピー元、コピー先、ログファイルを変数としておけば、後で変更する場合にわかりやすい。

SET COPYFROM="\\server\folder1"
SET COPYTO="c:\backup\folder1"
SET LOG="%~n0.log"

CALL ROBOCOPY %COPYFROM% %COPYTO% /R:5 /MIR /NP /LOG+:%LOG%

pause

解説

SET COPYFROM="\\server\folder1"
SET COPYTO="c:\backup\folder1"
SET LOG="%~n0.log"

「COPYFROM」変数に、コピー元のフォルダを指定。
「COPYTO」変数に、コピー先のフォルダを指定。
「LOG」変数に、バッチファイルの拡張子を除いたファイル名を指定。バッチファイルが「sample.bat」の場合、「sample.log」というファイル名となる。

CALL ROBOCOPY %COPYFROM% %COPYTO% /R:5 /MIR /NP /LOG+:%LOG%

robocopyコマンドを実行。

pause

コマンド実行画面を閉じずに、何かキーが押されるまで待機する。実行状況の確認をコマンド画面で確認できる。自動実行する場合は、この記述は削除すること。

コメント

タイトルとURLをコピーしました