Batch Script und die Prozentzeichen

Written by  on November 25, 2015 

Ich hab mich wieder Mal über ein Script geärgert.
Folgendes Beispiel hat beim Testen auf der Shell wunderbar funktioniert

C:\tmp\test>for /f %f in ('dir *.txt') DO echo %f
Datei nicht gefunden

C:\tmp\test>echo Volume
Volume

C:\tmp\test>echo Volumeseriennummer:
Volumeseriennummer:

C:\tmp\test>echo Verzeichnis
Verzeichnis

Das macht Output mit dem Befehl zwischen den einfachen Anführungszeichen.
Also ab in ein Script damit und nochmal ausgeführt

C:\tmp\test>test

Was? Kein Output – sollte das Script nicht das gleiche tun, wie wenn die Zeile auf der Shell geschrieben geht?
Eine kleine Änderung im Script – %f wird mit %%f ersetzt:

for /f %%f in ('dir *.txt') DO echo %%f

Und jetzt kommt aus dem Script das gleiche raus, wie vorher auf der Commandline:

C:\tmp\test>test

C:\tmp\test>for /F %f in ('dir *.txt') DO echo %f
Datei nicht gefunden

C:\tmp\test>echo Volume
Volume

C:\tmp\test>echo Volumeseriennummer:
Volumeseriennummer:

C:\tmp\test>echo Verzeichnis
Verzeichnis

Quelle und Erklärung bei Stackoverflow

Category : Allgemein

Tags :

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.