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-Key: 118929

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

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

Mitglied: 77559
77559 Jun 24, 2009 at 10:15:11 (UTC)
Goto Top
Tut es doch, du musst es nur mit einem ^ davor escapen.

Gruß
LotPings
Member: jutzin
jutzin Jun 24, 2009 at 11:20:42 (UTC)
Goto Top
gnaaaaaa wie peinlich! danke (blush)