Tôi đã cố gắng làm điều tương tự từ một chia sẻ mạng.
SET MoveDirSource=\\Server\Folder
SET MoveDirDestination=Z:\Folder
Dưới đây là những phát hiện và giải pháp của tôi từ các thử nghiệm trên máy Windows 7.
Gợi ý:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOVE /E
Vấn đề: Di chuyển thư mục nguồn.
Gợi ý:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOVE /E /XD "%MoveDirSource%"
Vấn đề: Vẫn di chuyển thư mục nguồn.
Gợi ý:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOV /E
Vấn đề: Để lại cấu trúc thư mục trống phía sau trong thư mục nguồn.
Giải pháp làm việc:
MKDIR "%MoveDirDestination%"
FOR %%i IN ("%MoveDirSource%\*") DO MOVE /Y "%%i" "%MoveDirDestination%\%%~nxi"
FOR /D %%i IN ("%MoveDirSource%\*") DO ROBOCOPY /MOVE /E "%%i" "%MoveDirDestination%\%%~nxi"
Hai dòng đầu tiên di chuyển các tập tin cấp cao nhất, các thư mục di chuyển thứ ba. Lưu ý %% là để sử dụng trong một tệp bó, dán vào một dòng lệnh cần những thay đổi này thành một dấu phần trăm duy nhất.
~ nxi ở đích là một BIỂU TƯỢNG GIAO DỊCH (Xem FOR /?) trong đó ~ nxi đại diện cho tên và phần mở rộng của mục hiện đang được lặp qua.
Robocopy mặc định để TRẢ LẠI MỘT TRIỆU lần và ĐỔI 30 GIÂY giữa mỗi lần thử, vì vậy bạn có thể muốn thêm / R: 1 / W: 1 vào các đối số robocopy.