anmelder
Goto Top

FOR f Schleife mit Leerzeichen im Pfad

Hallo,

meine Batch soll auch dann laufen wenn sie in einem Ordner mit Leerzeichen gespeichert wird.

echo off
CLS
SETLOCAL ENABLEDELAYEDEXPANSION

if exist "d:\neuer ordner" echo ja  


 FOR /f "delims=" %%i IN ("d:\neuer ordner\test.txt") DO (  
SET a=%%i

echo test !a!
)


pause

Es wird ausgegeben:

ja
test d:\neuer ordner\test.txt
Drücken Sie eine beliebige Taste . . .

Damit das funktioniert muß ich den Dateinamen in Anführungszeichen setzten, dann wird der String aber als Text bearbeitet. Ist die Schleife nicht fähig Ordner mit Leerzeichen zu benutzen oder muß man irgendeine Maskierung verwenden? Wenn die Schleife keine Leerzeichen kennt, ist es möglich den Dos namen in 8.3 Form heruaszufinden und zu verwenden?

Wenn es keine Lösung gibt diese Pfade zu verwenden suche ich eine Schleife die einen Pfad vorab auf Gültigkeit auf 8.3 Kompatibilität überprüft um eine vernünftige Fehlermeldung auszugeben daß sich das Programm im falschen Ordner befindet wenn absehbar ist daß es einen Fehler geben wird.

Content-Key: 506755

Url: https://administrator.de/contentid/506755

Printed on: April 20, 2024 at 02:04 o'clock

Mitglied: 141320
Solution 141320 Oct 19, 2019 updated at 12:54:25 (UTC)
Goto Top
usebackq ist dein Stichwort, dann kannst du deinen Pfad in der FOR-Schleife in Anführungszeichen setzen und er wird als solcher behandelt
FOR /f "usebackq delims=" %%i IN ("d:\neuer ordner\test.txt") DO (  

Einfach mal for /? in die Konsole eingeben ..

usebackq        - Gibt an, dass die neue Semantik in Kraft ist,
                  wobei eine Zeichenfolge in umgekehrten Anführungs-
                  zeichen als Befehl ausgeführt wird und eine
                  Zeichenfolge in Anführungszeichen ein literaler
                  Befehl ist, der die Verwendung von doppelten
                  Anführungszeichen um Dateinamen in Dateien-
                  sätzen erlaubt.
Member: anmelder
anmelder Oct 19, 2019 at 12:56:58 (UTC)
Goto Top
Danke. Ich habe die Hilfe gelesen aber fand diesen Text nicht sehr erleuchtend:

Gibt an, dass die neue Semantik in Kraft ist,
                          wobei eine Zeichenfolge in umgekehrten Anführungs-
                          zeichen als Befehl ausgeführt wird und eine
                          Zeichenfolge in Anführungszeichen ein literaler
                          Befehl ist, der die Verwendung von doppelten
                          Anführungszeichen um Dateinamen in Dateien-
                          sätzen erlaubt.

face-smile
Mitglied: 141320
141320 Oct 19, 2019 updated at 13:08:36 (UTC)
Goto Top
Zitat von @anmelder:

Danke. Ich habe die Hilfe gelesen aber fand diesen Text nicht sehr erleuchtend:
Hmmmm, eigentlich ziemlich eindeutig face-smile:
... der die Verwendung von Anführungszeichen um Dateinamen in Dateiensätzen erlaubt.

Hier werden sie auch erleuchtet:
Tutorial zur FOR-Schleife