Programmieren - alles kontrollieren 4.939 Themen, 20.672 Beiträge

Batchdatei --> Leerzeichen in Dateinamen

INXS / 14 Antworten / Flachansicht Nickles

Hallo,
ich habe ein Verzeichnis:
C:\Temp\Test\
darin liegen zwei Ordner:
"Ordner1" und "Ordner 2"
(beim zweiten ist ein Leerzeichen drin)

Ich habe eine Batchdatei, die alle Verzeichnisse abarbeitet. Leider bringt diese bei "Ordner 2"
nur "Ordner".
Gibt es eine Möglichkeit die batchdatei so umzustellen, dass der Name "Ordner 2" korrekt erkannt wird ?

Hier die Datei:

@echo off
cd C:\Temp\Test

for /f "delims=" %%i in ('dir /b /ad') do call :Schleife %%i
goto :eof

:Schleife
echo %1
echo %~f1
pause
goto :eof

bei Antwort benachrichtigen
Borlander INXS „Batchdatei --> Leerzeichen in Dateinamen“
Optionen
for /f "delims=" %%i in ('dir /b /ad') do call :Schleife %%i
Solltest Du in
for /f "delims=" %%i in ('dir /b /ad') do call :Schleife "%%i"
ändern. Innerhalb der Unterfunktion ebenfalls Anführungszeichen verwenden.

Noch zwei Anmerkungen:
FOR bietet auch direkt eine Option zum durchlaufen von Verzeichnissen. Das wäre sicher eine bequemere und übersichtlichere Lösung als die Verrenkung mit dir ;-)

Die NT-Erweiterungen erlauben auch Codeblöcke durch Klammern zu definieren. Ein Funktionsaufruf wäre hier nicht zwingend erforderlich. Was übersichtlicher ist mußt Du natürlich selbst entscheiden, zur Wiederverwandbarkeit ist eine Funktion natürlich schöner.


Gruß
Borlander
bei Antwort benachrichtigen