理論的には、使用/DCOPY:T
することですべての問題を解決するはずです。
しかし、私はこれが起こるのを見て、それを「バグ」と呼ぶかどうかはわかりませんが、むしろ一連の操作の結果です(OK、バグ)。
このコマンドは、すべてのファイルをコピーするために動作するはずC:\Brushes
のD:\NEWBrushes
、および/DCOPY:T
ソースフォルダのタイムスタンプが保存先のフォルダにコピーする必要があります原因:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
(少なくとも一部のバージョンのRobocopyで)私が見たのは、コマンドは成功するが、D:\NEWBrushes
フォルダーのタイムスタンプは現在の日時に設定されるということです。
その/DCOPY:T
ため、コピーしている「ベース」(最上位)フォルダーでは機能が機能しないようです。
私はそれが機能していると信じていますが、宛先フォルダのタイムスタンプは、操作シーケンスの後半にある操作によって「踏まれ」ています。
私はこのコマンドで起こっていると信じています:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
このようなものです:
- フォルダー
D:\NEWBrushes
が存在しない場合は作成します
- からタイムスタンプをコピー
C:\Brushes
しますD:\NEWBrushes
- ファイルのコピー元とサブフォルダ
C:\Brushes
へD:\NEWBrushes
ステップ3、フォルダーの内容の変更D:\NEWBrushes
により、タイムスタンプがD:\NEWBrushes
変更されるようです。
私にとって、「回避策」はrobocopy
、ファイルとフォルダーをコピーするコマンドを実行してから、同じrobocopy
コマンドをもう一度実行することでした。
したがって、最初に実行するとき:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
すべてのファイルとフォルダーがコピーされます。その後、再度実行します。
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
(or)
robocopy "C:\Brushes" "D:\NEWBrushes" /DCOPY:T
2回目のrobocopy
実行では、ファイルやフォルダーD:\NEWBrushes
は変更されず、/DCOPY:T
オプションはrobocopy
タイムスタンプをからC:\Brushes
にコピーするように指示しますD:\NEWBrushes
(C:\Brushes
最初の実行以降に変更されたフォルダー/ファイルが存在しない場合robocopy
)。
rsync
ですが、ターゲットフォルダーの最後にスラッシュが付いていない場合はどうなりますか?GUIを使用する代わりに、コマンドラインレベルでスクリプトを変更してみてはどうですか。コマンドラインツールが必要なことを行うという事実を知っています。