jutzin
Goto Top

warum funktioniert piping nicht im satz des for befehls?

ich hätte gerne eine schleife über alle verzeichnisse und unterverzeichnisse mit ausnahme eines bestimmten ausschluss-verzeichnisses und dessen unterverzeichnissen, aber...

eigentlich ganz einfach, dachte ich:
dir /a:d /s /b | findstr /i /v /c:^\exclude^\
liefert die liste aller verzeichnisse, die nicht den string \exclude\ im pfad enthalten (das ist zwar nicht ganz sauber, weil das dann u.u. nicht nur für einen einzigen teilbaum, sondern für alle unterbäume unterhalb eines jeden verzeichnisses namens \exclude gilt, aber ich habe dafür gesorgt, dass es nur ein einziges verzeichnis mit dem namen \exclude gibt).

leider gibt aber
for /f "usebackq delims=" %i in (`dir /a:d /s /b | findstr /i /v /c:^\exclude^\`) do echo "%~i"  
die meldung "|" ist an dieser Stelle syntaktisch nicht verarbeitbar zurück. bummer.

ich frage mich: a) woran liegt's? und b) aus reiner wissenschaftlicher neugier -- denn ich hab das ganze inzwischen über den >> temp.txt-umweg gelöst -- wie würdet Ihr das in einem einzeiler lösen?

viele grüße

jutzin

Content-ID: 118929

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

Ausgedruckt am: 22.11.2024 um 13:11 Uhr

77559
77559 24.06.2009 um 12:15:11 Uhr
Goto Top
Tut es doch, du musst es nur mit einem ^ davor escapen.

Gruß
LotPings
jutzin
jutzin 24.06.2009 um 13:20:42 Uhr
Goto Top
gnaaaaaa wie peinlich! danke (blush)