Ext JS に関しては,新しい記事は Sunvisor Lab. ExtJS 別館 にあります。そちらもよろしくお願いいたします。
Robocopy よく使うオプション
Robocopy のオプションはめちゃくちゃたくさんあります。ここでは,実際に場面でのその組み合わせ例を示します。
ミラーリング
robocopy C:\userdata \\server\userdata /MIR
ソースパスの内容ととデスティネーションパスを全く同じにしたい場合に使います。/MIR オプションは,/E(空のものも含めてサブフォルダをコピーする) と /PURGE(コピー元にないファイル・フォルダを削除する) を両方指定したのと等価です。
コピー先のファイル削除をしない場合は
robocopy C:\userdata \\server\userdata /E
のように /E のみを指定します。
エラーを無視してコピー
エクスプローラなどで,フォルダごとコピーしようとすると,長い間待たされたあげくエラーが発生して途中で止まってしまいガッカリという経験はありませんか。「とりあえず,エラーが起きないファイルだけでも全部コピーしてくれればいいのに」
robocopy C:\userdata \\server\userdata /R:0 /E
/R:0で,エラー時のリトライ回数を0にしています。/Eオプションでソースフォルダの全てをコピーします。これでソースフォルダのファイルをエラーが発生しても中断することなくコピーできます。
robocopy C:\userdata \\server\userdata /R:0 /E /NFL /NP > COPY.LOG
さらに/NPや/NFLオプションをつけるて出力をファイルにリダイレクトすると,エラーが発生したログだけが残りますので,コピーできなかったファイルを特定できます。
コピー先のいらないファイルを削除するだけ
デスティネーションフォルダにはあるがソースフォルダにないファイル。Robocopy のファイルクラスで言うとExtra。いわゆるゴミのファイルですが,そのファイルを削除するのみで,ファイルのコピーは行わないということもできます。
robocopy C:\userdata \\server\userdata /NOCOPY /PURGE
古いファイルはコピーしない
Robocopy のデフォルトの動作では,Changed, Newer, Older のクラスのファイルがコピーされます。ソースの方が古いファイルであっても,コピーされるのです。古いファイルはコピー対象から外したい場合は/XOオプションを使います。
robocopy C:\userdata \\server\userdata /MIR /XO
NASにコピーする
NAS製品の中では,タイムスタンプの精度がFATなみの2秒というものがあります。そのくせNTFSを名乗っている。そんなディスクとNTFSのディスクの間でミラーリングをした場合に,タイムスタンプの精度の違いにより,毎回コピーされてしまったり全然コピーされなかったりとうまく動かないことがあります。そんなことが起きないように,/FFT オプションを使います。
robocopy C:\userdata \\server\userdata /MIR /FFT
/FFTでは,タイムスタンプの精度が2秒であるとしてコピーをします。
コピーではなく移動する
コピーではなくフォルダ構造全体を移動したい場合は,/MOVE オプションを使います。
robocopy C:\userdata \\server\userdata /MOVE
よく似た感じの /MOV オプションもあります。こちらは,コピー元に(空っぽの)フォルダ構造が残ります。/MOVE ではフォルダも含めて元のパスにはなにもなくなります。