Verschieben von Dateien eines bestimmten Besitzers
Hallo,
ich benötige für folgende Problematik ein paar Tipps bzw. Anregungen:
wie kann ich nur die Dateien jedoch nicht die Ordner eines bestimmten Besitzers aus meinem Server in ein anderes System verschieben, vorzugsweise sollte auf dem Zielsystem ein Abbild der Ordnerstruktur der verschobenen Dateien mit erstellt werden.
Vielen Dank für Vorschläge
ich benötige für folgende Problematik ein paar Tipps bzw. Anregungen:
wie kann ich nur die Dateien jedoch nicht die Ordner eines bestimmten Besitzers aus meinem Server in ein anderes System verschieben, vorzugsweise sollte auf dem Zielsystem ein Abbild der Ordnerstruktur der verschobenen Dateien mit erstellt werden.
Vielen Dank für Vorschläge
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 208903
Url: https://administrator.de/forum/verschieben-von-dateien-eines-bestimmten-besitzers-208903.html
Ausgedruckt am: 06.04.2025 um 21:04 Uhr
7 Kommentare
Neuester Kommentar
Moin dervik,
sinngemäß mit einer Zeile vom CMD-Prompt nach folgendem Muster:
-> Wenn denn die Dateien des Benutzers "user123" von einem Laufwerk "X" auf ein Laufwerk U:\ verschoben werden sollen:
- die beiden @echos sind nur zum gefahrlosen Testen und zeigen, was passieren würde
-
-
- danach wird ein
- danach wird ein MOVE DateiVonUser123 von X: nach U: gemacht
- alles natürlich ungetestet
Grüße
Biber
sinngemäß mit einer Zeile vom CMD-Prompt nach folgendem Muster:
-> Wenn denn die Dateien des Benutzers "user123" von einem Laufwerk "X" auf ein Laufwerk U:\ verschoben werden sollen:
for /d /r "X:\" %v in (*) do @for /f "tokens=5" %i in ('dir "%~v" /a-d /q^|find /i "user123"') do @(ECHO md "U:\%~pnxvi" 2>nul) & @ECHO move "%~v\%~i" "U:\%~pnxv\"
- die beiden @echos sind nur zum gefahrlosen Testen und zeigen, was passieren würde
-
for /d /r "X:\" %v in (*)
--> geht mit der Laufvaiablen %v wie Verzeichnis über alle Unterordner des Laufwerks X:\-
for /f "tokens=5" %i in ('dir "%~v" /a-d /q^|find /i "user123"')
--> sucht alle Dateien von "user123" je gefundenem Unterverzeichnis- danach wird ein
md "neuesLw\alterVerzeichnisname
gemacht, der in 95% aller Fälle überflüssig ist ("Verzeichnis schon vorhanden"), deshalb "2>nul"- danach wird ein MOVE DateiVonUser123 von X: nach U: gemacht
- alles natürlich ungetestet
Grüße
Biber
Moin dervik,
deshalb schrieb ich ja "ungetestet"...
Okay, ich habe es bei mir mit Quell-laufwerk T:\ und Zeile\-Rootverzeichnis F:\Test nochmal probiert und wenigstens noch einen überflüssige "\" und eine "Datei nicht gefunden"-Fehlermeldung aus der Beispielzeile rausgeworfen.
Und ganz wichtig - statt "nur" auf den Usernamen - im Beispiel user123 zu filtern, besser auf Kombination "dieDomain\derUsername".
Sonst werden -zumindest bei mir - viel zu viel Dateien gefunden, die meinen Usernamen beinhalten
So würde es aber bei mir ein Ergebnis bringen, wenn ich es vom CMD-Prompt absende.
Wenn es bei dir Fehler bringt, dann taste dich in Etappen heran:
Zuerst:
- for /d /r "T:\" %v in (*) do @echo "%~v"
dann:
- for /d /r "T:\" %v in (*) do @or /f "tokens=5" %i in ('dir "%~v\" /a-d /q ^2^>nul^|find /i "dieDomain\user123"') do @echo "%~v\%~i"
Damit wir sehen, wo es schiefgeht.
Grüße
Biber
deshalb schrieb ich ja "ungetestet"...
Okay, ich habe es bei mir mit Quell-laufwerk T:\ und Zeile\-Rootverzeichnis F:\Test nochmal probiert und wenigstens noch einen überflüssige "\" und eine "Datei nicht gefunden"-Fehlermeldung aus der Beispielzeile rausgeworfen.
Und ganz wichtig - statt "nur" auf den Usernamen - im Beispiel user123 zu filtern, besser auf Kombination "dieDomain\derUsername".
Sonst werden -zumindest bei mir - viel zu viel Dateien gefunden, die meinen Usernamen beinhalten
for /d /r "T:\" %v in (*) do @for /f "tokens=5" %i in ('dir "%~v\" /a-d /q ^2^>nul^|find /i "dieDomain\user123"') do @(ECHO md "F:\test\%~pnxv" 2>nul) & @ECHO move "%~v\%~i" "F:\test%~pnxv\"
So würde es aber bei mir ein Ergebnis bringen, wenn ich es vom CMD-Prompt absende.
Wenn es bei dir Fehler bringt, dann taste dich in Etappen heran:
Zuerst:
- for /d /r "T:\" %v in (*) do @echo "%~v"
dann:
- for /d /r "T:\" %v in (*) do @or /f "tokens=5" %i in ('dir "%~v\" /a-d /q ^2^>nul^|find /i "dieDomain\user123"') do @echo "%~v\%~i"
Damit wir sehen, wo es schiefgeht.
Grüße
Biber