Ich habe versucht, dasselbe von einer Netzwerkfreigabe aus zu tun.
SET MoveDirSource=\\Server\Folder
SET MoveDirDestination=Z:\Folder
Hier sind meine Ergebnisse und Lösungen aus Tests auf einem Windows 7-Computer.
Vorschlag:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOVE /E
Problem: Verschiebt den Quellordner.
Vorschlag:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOVE /E /XD "%MoveDirSource%"
Problem: Verschiebt weiterhin den Quellordner.
Vorschlag:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOV /E
Problem: Lässt leere Ordnerstruktur im Quellordner zurück.
Arbeitslösung:
MKDIR "%MoveDirDestination%"
FOR %%i IN ("%MoveDirSource%\*") DO MOVE /Y "%%i" "%MoveDirDestination%\%%~nxi"
FOR /D %%i IN ("%MoveDirSource%\*") DO ROBOCOPY /MOVE /E "%%i" "%MoveDirDestination%\%%~nxi"
In den ersten beiden Zeilen werden Dateien der obersten Ebene verschoben, in der dritten Zeile Ordner. Beachten Sie, dass das doppelte %% für die Verwendung in einer Batch-Datei vorgesehen ist. Beim Einfügen in eine Befehlszeile müssen diese in eine einzelne Prozentmarke geändert werden.
~ nxi im Ziel ist eine FOR SUBSTITUTION VARIABLE (Siehe FOR /?), wobei ~ nxi den Namen und die Erweiterung des Elements darstellt, das gerade durchgeschleift wird.
Die Standardeinstellung für Robocopy lautet MILLIONEN-WIEDERHOLEN und WARTEN zwischen jedem Versuch 30 SEKUNDEN. Fügen Sie daher möglicherweise / R: 1 / W: 1 zu den Robocopy-Argumenten hinzu.