ハードディスクの中にデータがたまってくると、バックアップが心配。
毎回エクスプローラーでコピーするのも面倒なうえ、なんといっても処理が遅い・・・

かといって、市販ソフトを買うほどのことでもない気が
そこでたどり着いたのが、
「robocopy」。なんとWindows7の標準機能。
このコマンドはWindows VistaからOSに標準で搭載されているらしい。
コマンドラインから使うのだが、めんどくさいので、こんな感じでバッチファイルにしてみた。
:: //-------------------------------------------------------------------
:: // My BackUP ( robocopy.exeを使ったミラーリング)
:: // 「D:\mydata」の内容を「E:\mydata_mirror」にミラーリング
:: //-------------------------------------------------------------------
@echo off
::--------------「バックアップ元」指定
SET FROM=D:\mydata
::--------------「バックアップ先」指定
SET TO=E:\mydata_mirror
::--------------コピーしないディレクトリ指定
SET eXD_1=tmp
SET eXD_2=
SET eXD_3=
SET eXD_4=
SET eXD_5=
::--------------コピーしないファイル指定
SET eXF_1=*.bak
SET eXF_2=*.$??
SET eXF_3=*.tmp
SET eXF_4=*.temp
SET eXF_5=*.chk
SET eXF_6=Thumb.db
::--------------オプションスイッチ指定
SET OP_1=/MIR
SET OP_2=/XA:SH
SET OP_3=/XO
SET OP_4=/NFL
SET OP_5=/NDL
SET OP_6=/NP
SET OP_7=/R:0
SET OP_8=/W:0
SET OP_9=/XD %eXD_1% %eXD_2% %eXD_3% %eXD_4% %eXD_5%
SET OP_10=/XF %eXF_1% %eXF_2% %eXF_3% %eXF_4% %eXF_5% %eXF_6%
SET OP_11=
SET OP_12=
SET OP_13=
SET OP_14=
::SET OP_15=/XX
::使用したオプションスイッチ覚書
:: /MIR ミラーリングコピーする (/Eと/PURGEを指定したのと同じ)
:: /XA:SH 隠しファイルとシステムファイルを除外
:: /XO Olderファイル(入力元の方が古いファイル = 改変がないファイル)を除外
:: /XX 入力元に存在せず出力元に存在するを除外 (これをつけておくと、元からあるファイルが削除されない。)
:: /NFL ファイル名をログに出力しない
:: /NDL フォルダ名をログに出力しない
:: /NP コピー進捗率をログに表示しない。デフォルトでは、コピーした割合が10%、20%と表示される。
:: 画面で見る限りは便利なのだが、不要な行がログファイルに大量に出力される。これを回避するためのオプション。
:: /R:0 コピーに失敗したときにリトライする回数で、「/R:n」の「n」 の部分が任意の回数となります。(デフォルトは1000000) リトライ回数=0 (<例>/R:1)。
:: /W:0 リトライの間の待ち時間(秒数)で、「/W:n」の「n」 の部分n の部分が任意の秒数となります。(デフォルトは30秒)
:: /XD [str] ファイル名 [str] にマッチするディレクトリは除外 (例:/XD tmp*)。複数指定可
:: /XF [str] ファイル名 [str] にマッチするファイルは除外 (例:/XF *.bak)。複数指定可
::未使用だけど便利そうなオプションスイッチ覚書
:: /RH:hhmm-hhmm コピーを許可する時間の指定(<例>/ph:1000-2000 とすると10時から20時の間のみコピーを実行)
:: /MON:n コピー元を監視し、n 回を超える変更があった場合に再度実行(<例>MON:1)
:: /MOT:m コピー元を監視し、変更があった場合 m 分間再度実行(<例>MOT:5)
:: /MT[:n] n 個のスレッドのマルチスレッドコピーを実行(Windows7より追加されたオプション。それ以前のrobocopyでは使用できない。) (既定値 8)
::-----------------Main処理
robocopy %FROM% %TO%^
%OP_1% %OP_2% %OP_3% %OP_4% %OP_5% %OP_6% %OP_7% %OP_8% %OP_9% %OP_10% %OP_11% %OP_12% %OP_13% %OP_14% %OP_15%
|
robocopyコマンドの利点は
①ファイル名のフルパスが256文字以上でもOK
フルパスで256文字以上になる場合、エクスプローラでコピーするとエラーメッセージが表示されてスキップされてしまう。
robocopyは約32000文字まで対応できる。
②アクセス権をそのままコピーできる
robocopyコマンドはオプションに/COPYALLを付ければ、アクセス権限を含めた全ての属性情報をコピーできる。
ファイルの場合は更新日時のタイムスタンプをそのままの状態でコピーできる。
共有PCの場合は、ファイルのコピー後にアクセス権限を事細かに設定しなおす必要もなくなる。
うん! 完璧!!
ちなみにVista以前のOSで使うには
(1)
Windows Server 2003 Resource Kit Toolsを入手。
(2) 「
rktools.exe」をダウンロード。
(3) 拡張子を「rar」か「zip」に変え、解凍ソフト「Win rar」や「Lhaplus」で解凍する。
(4) 解凍したフォルダの中にある「rktools.msi」を「(3)」同様に拡張子を変え、解凍する。
(5) できたファイル群から、robocopy.exeを取り出す。
で、入手できる。