理論的には、使用/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を使用する代わりに、コマンドラインレベルでスクリプトを変更してみてはどうですか。コマンドラインツールが必要なことを行うという事実を知っています。