ROBOCOPY - Ordner verschieben, nicht Ordnerinhalt
Hallo zusammen,
simple Frage aber ich bin irgendwie zu blöd um auf die Lösung zu kommen:
robocopy C:\Temp\A D:\Temp /e /move .....
Wenn ich den ganz normalen robocopy Befehl eingebe wird ja der Inhalt des Ordners A nach D:\Temp kopiert.
Wie kann ich es umschreiben, damit nicht der Inhalt des Ordners A, sondern der komplette Ordner verschoben wird.
Ziel ist es das Ordner A von C:\Temp nach D:\Temp wandert.
Hintergrund: Auf C:\ muss Platz geschaffen werden und deshalb soll der Ordner (und diverse Andere) von C:\ nach D:\
Dabei darf kein neuer Ordner A angelegt werden, da auf dem ursprünglichen Ordner Freigaben laufen und bestimmte Berechtigungen gesetzt sind.
Danke für die Hilfe
Kilrathi
simple Frage aber ich bin irgendwie zu blöd um auf die Lösung zu kommen:
robocopy C:\Temp\A D:\Temp /e /move .....
Wenn ich den ganz normalen robocopy Befehl eingebe wird ja der Inhalt des Ordners A nach D:\Temp kopiert.
Wie kann ich es umschreiben, damit nicht der Inhalt des Ordners A, sondern der komplette Ordner verschoben wird.
Ziel ist es das Ordner A von C:\Temp nach D:\Temp wandert.
Hintergrund: Auf C:\ muss Platz geschaffen werden und deshalb soll der Ordner (und diverse Andere) von C:\ nach D:\
Dabei darf kein neuer Ordner A angelegt werden, da auf dem ursprünglichen Ordner Freigaben laufen und bestimmte Berechtigungen gesetzt sind.
Danke für die Hilfe
Kilrathi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 380507
Url: https://administrator.de/contentid/380507
Ausgedruckt am: 24.11.2024 um 17:11 Uhr
14 Kommentare
Neuester Kommentar
Hallo,
willst Du jetzt den Ordner C:\Temp\A verschieben oder nur die anderen?
Wenn Ordner A nicht verschoben werden soll, dann schau Dir mal den Parameter /XD an.
Mache doch ganz einfach einen Test, indem Du zudem die Parameter /tee /log:C:\robocopy.log einsetzt.
Somit kannst Du den Verschiebevorgang protokollieren.
Gruss Penny
willst Du jetzt den Ordner C:\Temp\A verschieben oder nur die anderen?
Wenn Ordner A nicht verschoben werden soll, dann schau Dir mal den Parameter /XD an.
Mache doch ganz einfach einen Test, indem Du zudem die Parameter /tee /log:C:\robocopy.log einsetzt.
Somit kannst Du den Verschiebevorgang protokollieren.
Gruss Penny
Ja und hast Du mal mittels den Parametern den Verschiebevorgang simuliert?
Und hast Du Dir mal die Hilfe von Robocopy genau angeschaut?
Hast Du mal mit Testverzeichnissen experimentiert?
Sind unter C:\Tempauch andere Verzeichnisse, welche NICHT verschoben werden sollen?
Mal kurz mit einem Testverzeichnis testen kann doch nicht soooooo schwer sein.
Gruss Penny
/L /Tee /log:C:\robocopy.log
Und hast Du Dir mal die Hilfe von Robocopy genau angeschaut?
Hast Du mal mit Testverzeichnissen experimentiert?
Sind unter C:\Tempauch andere Verzeichnisse, welche NICHT verschoben werden sollen?
Mal kurz mit einem Testverzeichnis testen kann doch nicht soooooo schwer sein.
Gruss Penny
rsync nehmen
dort wird es über die slashes am ende des pfades bestimmt:
https://wiki.ubuntuusers.de/rsync/#Vorab-zur-Syntax
Kannst es ja über das Linux Subsystem for Windows installieren, dann hat man das Windows Filesystem + die Linux Kommandozeilentools in einer umgebung
dort wird es über die slashes am ende des pfades bestimmt:
https://wiki.ubuntuusers.de/rsync/#Vorab-zur-Syntax
Kannst es ja über das Linux Subsystem for Windows installieren, dann hat man das Windows Filesystem + die Linux Kommandozeilentools in einer umgebung
Das Move-Item cmdlet von PS?
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
Du kannst A nicht verschieben wenn du A angegeben hast. So funktioniert Robocopy leider nicht. Wenn, müsstest du mit dem übergeordneten Verzeichnis agieren und per /XD und /XF alles ausschließen, was sich sonst noch in diesem Verzeichnis befindet. Das ließe sich automatisiert in eine .RCJ Datei schreiben, die du Robocopy als Job übergibst. Falls du Interesse hast, kann ich heute Abend dazu ein paar Scriptzeilen schreiben...
Steffen
Steffen
Probier mal ob das so funktioniert.
Steffen
*.bat
Steffen
*.bat
@echo off &setlocal DisableDelayedExpansion
:: für den Fall dass du mit erhöhten Rechten ausführst (was /COPY:DATSU sicherlich erfordert) ...
cd /d "%~dp0"
:: Quelle, Ziel und Jobname
set "src=C:\Temp\A"
set "dst=D:\Temp"
set "job=test"
set "job_f=%~dp0%job%.RCJ"
for %%i in ("%src%") do (set "p=%%~dpi" &set "d=%%~nxi")
>"%job_f%" type nul
setlocal EnableDelayedExpansion
>>"!job_f!" echo /SD:!p!
>>"!job_f!" echo /DD:!dst!\
endlocal
:: Spezifiziere deine Optionen hier
>>"%job_f%" echo /S
>>"%job_f%" echo /E
>>"%job_f%" echo /MOVE
>>"%job_f%" echo /COPY:DATSU
>>"%job_f%" echo /R:1
>>"%job_f%" echo /W:1
:: alle Ordner im übergeordneten Verzeichnis ausschließen, bis auf den zu verschiebenden
>>"%job_f%" echo /XD
for /f "delims=" %%i in ('dir /ad /b "%p%"') do (
if /i "%%i" neq "%d%" (
set "x=%p%%%i"
setlocal EnableDelayedExpansion
>>"!job_f!" echo !x!
endlocal
)
)
:: alle Dateien im übergeordneten Verzeichnis ausschließen
>>"%job_f%" echo /XF
for /f "delims=" %%i in ('dir /a-d /b "%p%"') do (
set "x=%p%%%i"
setlocal EnableDelayedExpansion
>>"!job_f!" echo !x!
endlocal
)
:: Robocopy mit dem erstellten Job starten.
robocopy /job:"%job%"
pause