Falsche Interpretation einer Gruppe in for-Schleife einer cmd-Datei

22/12/2008 - 08:45 von Thomas Wiedmann | Report spam
Hallo,

ich möchte gerne alle Dateien von einem Verzeichnis C:\mainDir und dessen
Unterverzeichnissen ermitteln (und in einer for-Schleife weiterbearbeiten),
die mit 1.doc enden, und habe dazu in einer cmd-Datei folgendes Statement
gebaut:

for /r C:\mainDir %%i in ("*1.doc") do (
...
)

Diese Schleife listet mir aber alle Dateien in dem betr. Verzeichnis auf,
nicht nur die, die das Muster *1.doc haben.

Woran liegt es; was ist mein Denkfehler?
Wie muß das for-Statement lauten, damit nur die *1.doc-Dateien durchlaufen
werden?

Thomas Wiedmann
 

Lesen sie die antworten

#1 Ralf Breuer
22/12/2008 - 10:33 | Warnen spam
Thomas Wiedmann schrieb:

Hallo Thomas,

ich möchte gerne alle Dateien von einem Verzeichnis C:\mainDir und
dessen Unterverzeichnissen ermitteln (und in einer for-Schleife
weiterbearbeiten), die mit 1.doc enden, und habe dazu in einer
cmd-Datei folgendes Statement gebaut:

for /r C:\mainDir %%i in ("*1.doc") do (
...
)

Diese Schleife listet mir aber alle Dateien in dem betr. Verzeichnis
auf, nicht nur die, die das Muster *1.doc haben.



Das ist ein hahnebüchener MS-Fehler. Die kleinen Ziffern werden falsch
interpretiert. Ein Beispiel mit *7.doc funktioniert.

Eine Alternative für 1:

for /f "delims=" %%i in ('dir C:\mainDir\*.doc /b /s') do (
echo %%i | find /i "1.doc" && (
...
)
)

Gruß
Ralf
Ich mag kein TOFU. Siehe http://einklich.net/usenet/zitier.htm
Bei Direkt-Mails NOSPAM entfernen

Ähnliche fragen