ฉันพยายามทำเช่นเดียวกันจากเครือข่ายที่ใช้ร่วมกัน
SET MoveDirSource=\\Server\Folder
SET MoveDirDestination=Z:\Folder
นี่คือสิ่งที่ค้นพบและวิธีแก้ปัญหาของฉันจากการทดสอบบนเครื่อง Windows 7
คำแนะนำ:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOVE /E
ปัญหา: ย้ายโฟลเดอร์ต้นทาง
คำแนะนำ:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOVE /E /XD "%MoveDirSource%"
ปัญหา: ยังคงย้ายโฟลเดอร์ต้นทาง
คำแนะนำ:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOV /E
ปัญหา: ปล่อยโครงสร้างโฟลเดอร์ว่างไว้ด้านหลังในโฟลเดอร์ซอร์ส
วิธีการทำงาน:
MKDIR "%MoveDirDestination%"
FOR %%i IN ("%MoveDirSource%\*") DO MOVE /Y "%%i" "%MoveDirDestination%\%%~nxi"
FOR /D %%i IN ("%MoveDirSource%\*") DO ROBOCOPY /MOVE /E "%%i" "%MoveDirDestination%\%%~nxi"
สองบรรทัดแรกย้ายไฟล์ระดับบนสุดบรรทัดที่สามย้ายโฟลเดอร์ หมายเหตุ double %% สำหรับการใช้งานในไฟล์แบตช์การวางลงในบรรทัดคำสั่งต้องการสิ่งเหล่านี้เปลี่ยนเป็นเครื่องหมายเปอร์เซ็นต์เดียว
~ nxi ในปลายทางคือ FOR SUBSTITUTION VARIABLE (ดู FOR /?) โดยที่ ~ nxi แสดงถึงชื่อและส่วนขยายของรายการที่วนซ้ำในปัจจุบัน
Robocopy มีค่าเริ่มต้นเป็น RETRY A ล้านครั้งและรอ 30 วินาทีระหว่างการลองแต่ละครั้งดังนั้นคุณอาจต้องการเพิ่ม/ R: 1 / W: 1เข้ากับอาร์กิวเมนต์ของ robocopy