Ordner finden - auf Laufwerk kopieren - Problem - Ordner enthält Leerstellen
Hallo,
nach dem lesen vieler Anleitungen habe ich noch keine Lösung oder das problem gefunden.
Ich muss unter Windows 2000 Dateien per Batch lokal von mehreren PC´s auf eine USB HDD kopieren.
Es soll von allen Benutzern des PC´s als Administrator das Verzeichnis Eigene Dateien gesichert werden. Im zu erstellenden Verzeichnis %computername% sollen alle Ordner Eigene Dateien der Benutzer mit vollständigen Pfad angegelegt werden.
Problem:
Mittels dir habe ich eine Verzeichnisliste erstellt, die alle Ordner enthält. Das kopieren scheitert, da eine Leerstelle im Ordnernamen ist.
Hier der Inhalt:
for /f %%e in ('dir /A:d /b /s "C:\*Eigene Dateien*"') do xcopy /I %%e %computername%
Fehlermeldung:
D:\Temp>xcopy /I C:\XP_PSB\Users\robin\Eigene D:\Temp\RESCUE_PSB
Datei Eigene nicht gefunden.
0 Datei(en) kopiert
Danke für Hilfe!
nach dem lesen vieler Anleitungen habe ich noch keine Lösung oder das problem gefunden.
Ich muss unter Windows 2000 Dateien per Batch lokal von mehreren PC´s auf eine USB HDD kopieren.
Es soll von allen Benutzern des PC´s als Administrator das Verzeichnis Eigene Dateien gesichert werden. Im zu erstellenden Verzeichnis %computername% sollen alle Ordner Eigene Dateien der Benutzer mit vollständigen Pfad angegelegt werden.
Problem:
Mittels dir habe ich eine Verzeichnisliste erstellt, die alle Ordner enthält. Das kopieren scheitert, da eine Leerstelle im Ordnernamen ist.
Hier der Inhalt:
for /f %%e in ('dir /A:d /b /s "C:\*Eigene Dateien*"') do xcopy /I %%e %computername%
Fehlermeldung:
D:\Temp>xcopy /I C:\XP_PSB\Users\robin\Eigene D:\Temp\RESCUE_PSB
Datei Eigene nicht gefunden.
0 Datei(en) kopiert
Danke für Hilfe!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 75629
Url: https://administrator.de/forum/ordner-finden-auf-laufwerk-kopieren-problem-ordner-enthaelt-leerstellen-75629.html
Ausgedruckt am: 29.04.2025 um 05:04 Uhr
11 Kommentare
Neuester Kommentar
Hallo cybercomm und willkommen im Forum!
Generelle Vorgangsweise in derartigen Fällen: Dateinamen / Pfade mit enthaltenen Leerzeichen in Anführungszeichen einschließen. Da außerdem noch eine "for"-Schleife (welche Leerzeichen und Tabs als "delimiter", also Trennzeichen betrachtet) beteiligt ist, musst Du mit "delims=" dafür sorgen, dass keine Trennung erfolgt.
Daher sollte es so gehen:
Grüße
bastla
Generelle Vorgangsweise in derartigen Fällen: Dateinamen / Pfade mit enthaltenen Leerzeichen in Anführungszeichen einschließen. Da außerdem noch eine "for"-Schleife (welche Leerzeichen und Tabs als "delimiter", also Trennzeichen betrachtet) beteiligt ist, musst Du mit "delims=" dafür sorgen, dass keine Trennung erfolgt.
Daher sollte es so gehen:
for /f "delims=" %%e in ('dir /A:d /b /s "C:\*Eigene Dateien*"') do xcopy /I "%%e" "%computername%"
Grüße
bastla

@cybercomm
Versuche das mal:
Du musst dich zur Ausführung aber entweder auf dem USB-Laufwerk befinden, oder zu %computername% noch den entsprechenden Laufwerksbuchstaben voranstellen.
@bastla
Der Xopy-Parameter /E schließt /S ein. Ein Backslash am Ende des Ziel-Verzeichnisnamens legt das Verzeichnis auch an, der Parameter /I erübrigt sich damit.
Anhand der Fehlermeldung lässt sich erkennen, dass eben nicht "Dokumente und Einstellungen" verwendet wird.
Versuche das mal:
for /f "delims=" %%e in ('dir /A:d /b /s "C:\*Eigene Dateien*"') do xcopy "%%e\..\..\*.*" /E "%computername%\"
Du musst dich zur Ausführung aber entweder auf dem USB-Laufwerk befinden, oder zu %computername% noch den entsprechenden Laufwerksbuchstaben voranstellen.
@bastla
Der Xopy-Parameter /E schließt /S ein. Ein Backslash am Ende des Ziel-Verzeichnisnamens legt das Verzeichnis auch an, der Parameter /I erübrigt sich damit.
Anhand der Fehlermeldung lässt sich erkennen, dass eben nicht "Dokumente und Einstellungen" verwendet wird.

Ok, dann habe ich das mit den "übergeordneten Ordnern" falsch interpretiert. 
Es muss aber (unabhängig von Scripten und Fehlern
) sichergestellt sein, dass das Pofil auch immer unter C:\user liegt und die Nutzer die "Eigene Dateien" nicht verschoben oder umbenannt haben.
Es muss aber (unabhängig von Scripten und Fehlern
Hallo cybercomm und siebenstein!
Damit die Bedingung, dass das Profil "auch immer unter C:\user liegt" zumindest auf "sich auf Laufwerk C: befindet" abgeschwächt werden kann, würde (unter Berücksichtigung von siebenstein's Hinweisen
) der Batch etwa so aussehen:
Grüße
bastla
Damit die Bedingung, dass das Profil "auch immer unter C:\user liegt" zumindest auf "sich auf Laufwerk C: befindet" abgeschwächt werden kann, würde (unter Berücksichtigung von siebenstein's Hinweisen
@echo off & setlocal
set "Quelle=Eigene Dateien"
set "Ziel=%computername%"
for /f "delims=" %%e in ('dir /s /b /ad "C:\*%Quelle%*"') do call :ProcessFolder "%%e"
goto :eof
:ProcessFolder
set "U=%~dp1"
set "U=%U:~0,-1%"
for /f "delims=" %%i in ("%U%") do set "User=%%~nxi"
xcopy /E %1 "%Ziel%\%User%\%Quelle%\"
Grüße
bastla

@bastla
Hehe, hat dir wohl keine Ruhe gelassen.
Dann hätte ich auch noch was als Ansatz: Ich würde %userprofile% auswerten, den Benutzernamen eliminieren und ausgehend davon die "Eigenen Dateien" suchen und kopieren.
Dann "bastla" mal schön.
))
Hehe, hat dir wohl keine Ruhe gelassen.
Dann hätte ich auch noch was als Ansatz: Ich würde %userprofile% auswerten, den Benutzernamen eliminieren und ausgehend davon die "Eigenen Dateien" suchen und kopieren.
Dann "bastla" mal schön.