ในทางทฤษฎีแล้วการใช้/DCOPY:Tควรแก้ปัญหาทั้งหมดของคุณ
แต่ฉันได้เห็นสิ่งนี้เกิดขึ้นและฉันไม่แน่ใจว่าฉันเรียกมันว่า "บั๊ก" แต่เป็นผลมาจากลำดับของการดำเนินการ (ตกลงบั๊ก)
คำสั่งนี้ควรใช้เพื่อคัดลอกไฟล์ทั้งหมดจากC:\BrushesไปยังD:\NEWBrushesและ/DCOPY:Tควรทำให้การประทับเวลาของโฟลเดอร์ต้นทางถูกคัดลอกไปยังโฟลเดอร์ปลายทาง:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
สิ่งที่ฉันเห็น (อย่างน้อยในบางเวอร์ชันของ Robocopy) คือคำสั่งสำเร็จ แต่การประทับเวลาของD:\NEWBrushesโฟลเดอร์ถูกตั้งค่าเป็นวันที่และเวลาปัจจุบัน
ดังนั้นจึงปรากฏว่า/DCOPY:Tคุณสมบัตินี้ใช้ไม่ได้กับโฟลเดอร์ "base" (บนสุด) ที่คุณกำลังคัดลอก
ฉันเชื่อว่ามันใช้งานได้ แต่การประทับเวลาของโฟลเดอร์ปลายทางกำลังถูก "เหยียบ" โดยการดำเนินการที่จะตามมาในลำดับการดำเนินการ
สิ่งที่ฉันเชื่อว่าเกิดขึ้นสำหรับคำสั่งนี้:
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
การrobocopyรันครั้งที่สองจะไม่มีการแก้ไขไฟล์หรือโฟลเดอร์ภายในD:\NEWBrushesและ/DCOPY:Tตัวเลือกจะบอกrobocopyให้คัดลอกการประทับเวลาจากC:\BrushesไปยังD:\NEWBrushes(เว้นแต่จะมีโฟลเดอร์ / ไฟล์ในC:\Brushesที่มีการเปลี่ยนแปลงนับตั้งแต่การเรียกใช้ครั้งแรกrobocopy)
rsyncแต่ถ้าคุณไม่มีเครื่องหมายสแลชท้ายท้ายโฟลเดอร์เป้าหมายของคุณ ลองปรับเปลี่ยนสคริปต์ที่ระดับบรรทัดคำสั่งแทนที่จะใช้ GUI ได้อย่างไร ฉันรู้ว่าเครื่องมือบรรทัดคำสั่งจะทำสิ่งที่คุณต้องการ