ロボコピーコマンドラインツール(ほとんどのバージョンのwindowsに付属)
私のwindows10のマシンではC:\Windows\System32
Wikipediaによると、ファイルとディレクトリのタイムスタンプやその他の属性を保存するために、以下のオプションセットで使用することができます。
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPYALL /E /R:0
/DCOPY:T
オリジナルの ディレクトリのタイムスタンプを保存 (バージョンXP026以降が必要)
/E
.
/R:0
: 空のディレクトリを含むディレクトリを再帰的にコピー
/COPYALL
: ロックされたファイルを再試行しない(コピー失敗時の再試行回数のデフォルト値は100万回)
/COPY:DATSOU
: すべてのファイル情報をコピー
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPY:T /S
.
/S
: すべてのファイル情報をコピーする,
(robocopy /?
と同等。
日付とディレクトリのタイムスタンプを保存したいだけで、空のサブディレクトリをコピーしたくない、他の属性を保存したくない場合は、以下のようにしてください。
Robocopy D:\ C:\D_backup /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
ここで、/XD
は 空ではないサブディレクトリをコピーする
完全な構文を見るには、コマンドプロンプトで /L
と入力するか、以下のブログ記事を参照してください。 https://ss64.com/nt/robocopy.html an https://techjourney.net/robocopy-syntax-command-line-switches-and-examples/
最近実行したコマンドの例。
show hidden files
2つのサブディレクトリを除外するには、show system files
フラグを2回使用する必要があることに注目してください。また、2つ目のディレクトリの除外では、ディレクトリ名にスペースがあるため、引用符を使用しています。
最後に、実際にコマンドを実行する前に /A-:SH
フラグを追加してテストすることができます。これにより、必要のないディレクトリやファイルがコピーされない(または削除されない)こと、コマンドにエラーがないことを確認することができます。
編集: ルートディレクトリ(別名ドライブ)からフォルダ(非ルートディレクトリ)にコピーするときの失敗
上記の例のコマンドを実行すると、ディレクトリが表示されませんでした。(Windows10ではRobocopy D:\ C:\D_backup /A-:SH /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
と0x6&がチェックされていたのに!) https://serverfault.com/a/455029/399723 の通りに以下のコマンドを実行すると直りました。
attrib -h -s C:\D_backup
また、 https://serverfault.com/a/565804/399723 のように、0x6&を追加することで「システムファイルから隠し属性を解除する」ことで、そもそもディレクトリが非表示になるのを防ぐことができます。https://ss64.com/nt/robocopy.html ](https://ss64.com/nt/robocopy.html)も参照してください。
この descussion は、解決策としてのこのオプションについてより多くの光を与えています。
0x6&
その他のソフトウェア:
コマンドラインを使いたくない場合は、 GUI版の robocopy をダウンロードすることもできます。
もう一つのWindowsユーティリティは XCopy です。ゲットチャについてはリンク先を参照してください。
ロボコピーのウィキペディアのページ(この記事のトップにリンクされています)には、他にも使えるソフトがリストアップされています。