ในทางทฤษฎีแล้วการใช้/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 ได้อย่างไร ฉันรู้ว่าเครื่องมือบรรทัดคำสั่งจะทำสิ่งที่คุณต้องการ