urknall
Goto Top

Alle Dateien in einem bestimmten Verzeichnis und allen darin enthaltenen Unterverzeichnissen eines bestimmten Namens ausführen lassen.

Ein kleines Problem, welches es zu lösen gibt.
Ich will in einem bestimmten Verzeichnis und allen darin enthaltenen Unterverzeichnissen alle Dateien eines bestimmten Namens ("install.cmd") ausführen lassen.

FOR /R pfad\ %%i IN (install.cmd) DO CALL %%i macht ja eigentlich auch schon das Gewünschte, allerdings wird auch versucht in Unterverzeichnissen, die nur existieren aber die Datei nicht enhalten auszuführen und es wird eine Fehlermeldung ausgespuckt weil die Datei nicht existiert.

Habe versucht ein IF EXISTS einzubauen, aber bin bis jetzt gescheitert, da das ganze syntaktisch nicht verarbeitet werden kann.

Hat jemand eine elegante Lösung für mein Problem parat?

Grüße Urknall

Content-Key: 23132

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

Printed on: April 19, 2024 at 17:04 o'clock

Mitglied: 22736
22736 Jan 09, 2006 at 12:13:57 (UTC)
Goto Top
Hi.

Es müsste es mit der folgenden Befehlszeile klappen:

FOR /R pfad\ %%i IN (install.cmd) DO IF EXIST "%%i" CALL "%%i"  

Ist aus der Hüfte geschossen ähm ich meine nicht getestet.

Viele Grüße
Member: urknall
urknall Jan 09, 2006 at 12:44:57 (UTC)
Goto Top
EDIT: Ich nehme alles zurück und behaupte das Gegenteil ;)

Falls jemand das vorher Geschriebene von mir gelesen hat vergesst es! Falsch getestet. Es funktioniert so wunderbar.

Vielen Dank Frank-Peter

Gruß
Member: Biber
Biber Jan 09, 2006 at 13:23:07 (UTC)
Goto Top
..aus der Hüfte schiess ich auch gern..

FOR /R pfad\ %%i IN (.) DO IF EXIST "%%i\install.cmd" CALL "%%i\install.cmd"

Auch ungetestet und gefühlsmäßig genauso richtig face-wink

Gruß Biber
[Edit]
uuups.. da war ich zeitgleich mit Deinem Edit.
habe allerdings auch fpschultzes Zeile nicht getestet, ebensowenig wie meine.
[/Edit]
Mitglied: 22736
22736 Jan 09, 2006 at 13:23:39 (UTC)
Goto Top
Eigenartig. Also die Fehlermeldung tritt bei "IF EXISTS ..." auf, weil IF die Anweisung EXISTS (mit S am Ende) nicht kennt. Aber mit "IF EXIST" sollte es klappen.

Alternativ kannst Du es auch so machen:

For /F "Tokens=*" %%i In ('Dir pfad\install.cmd /S /B') Do Call "%%i"