Batch in unterordner starten
hallo ,
ich habe ein riesen problem.
ich will mehrere unterordner nach batch dateien durchsuchen und die gefundenen .bat alle nacheinander ausführen.
for /f "delims=" %%i in ('dir /a-d /b /s *.bat') do
bis hierhin bin ich gekommen aber die bats lassen sich nicht im unterordner ausführen .
kann das einer besser...help..
ich habe ein riesen problem.
ich will mehrere unterordner nach batch dateien durchsuchen und die gefundenen .bat alle nacheinander ausführen.
for /f "delims=" %%i in ('dir /a-d /b /s *.bat') do
bis hierhin bin ich gekommen aber die bats lassen sich nicht im unterordner ausführen .
kann das einer besser...help..
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 18.01.2012 um 19:48:41 Uhr
Aus einem Kommentar des TO:
#792
...hier die umbennenen bat
Set /a rgc +=1#792
Content-ID: 179036
Url: https://administrator.de/forum/batch-in-unterordner-starten-179036.html
Ausgedruckt am: 10.05.2025 um 04:05 Uhr
13 Kommentare
Neuester Kommentar
Hallo weissgarnix und willkommen im Forum!
ansonsten
Vielleicht solltest Du aber doch noch etwas genauer erklären, wozu die ganze Aktion gedacht ist ...
Grüße
bastla
P.S.: "Code"- ist besser lesbar und lässt sich auch noch im Nachhinein realisieren ...
die bats lassen sich nicht im unterordner ausführen .
kann ich nicht wirklich nachvollziehen - wenn sie nacheinander ausgeführt werden sollen:for /f "delims=" %%i in ('dir /a-d /b /s *.bat') do call "%%i"
for /f "delims=" %%i in ('dir /a-d /b /s *.bat') do start "" "%%i"
Grüße
bastla
P.S.: "Code"- ist besser lesbar und lässt sich auch noch im Nachhinein realisieren ...
Hallo weissgarnix!
Ich habe mal ein paar (einzeilige) "start.bat" in Unterordnern verteilt - wo die liegen und was drin steht zeigt
mit folgendem Ergebnis
und ich dann die Batchdatei "RunBatches.cmd" mit folgendem Inhalt
ausführe, sieht das Ergebnis so aus:
Grüße
bastla
dann führt das programm nicht die gefundenen dateien start.bat im unterorner aus.
... sondern?Ich habe mal ein paar (einzeilige) "start.bat" in Unterordnern verteilt - wo die liegen und was drin steht zeigt
findstr /s "^" start.bat
Test\start.bat:@echo in Test
Test\alt\start.bat:@echo in alt
Leer\start.bat:@echo in Leer
for /f "delims=" %%i in ('dir /a-d /b /s start.bat') do @call "%%i"
in Test
in alt
in Leer
bastla
Hallo bastla, hallo weissgarnix,
ich hoffe mal das Problem erkannt zu haben und hätte zwei Lösungsvorschläge:
1. Umbenennen des Ausgangsskriptes (Abweichender Name zu den Anderen Skripten).
2. Ergänzen von bastla's (bei ihm wegen Punkt 1 funktionierender) Codezeile um eine if Abfrage:
Grund:
Der "dir" finden natürlich neben allen "start.bat" in den Unterverzeichnissen auch sich selbst und startet sich damit selbst immer und immer wieder
Schönen Tag noch
icsAT
ich hoffe mal das Problem erkannt zu haben und hätte zwei Lösungsvorschläge:
1. Umbenennen des Ausgangsskriptes (Abweichender Name zu den Anderen Skripten).
2. Ergänzen von bastla's (bei ihm wegen Punkt 1 funktionierender) Codezeile um eine if Abfrage:
for /f "delims=" %%i in ('dir /a-d /b /s start.bat') do if "%%i" NEQ "%~f0" @call "%%i"
Grund:
Der "dir" finden natürlich neben allen "start.bat" in den Unterverzeichnissen auch sich selbst und startet sich damit selbst immer und immer wieder
Schönen Tag noch
icsAT
Hallo weissgarnix!
Um den Ausgangsordner nicht mit zu verarbeiten (was eine weitere Lösung wäre, um das Ausführen der "start.bat" dort zu vermeiden), könntest Du folgende Schleife verwenden:
Auf die gleiche Art sollten sich die vielen "rectots.exe" und "start.bat" (von denen ich einfach nicht glauben mag, dass die wirklich alle nötig sind
) wieder loswerden lassen:
Grüße
bastla
[Edit] Falls es Unterordner ohne "start.bat" geben sollte, wäre
etwas "schöner" ...
[/Edit]
Um den Ausgangsordner nicht mit zu verarbeiten (was eine weitere Lösung wäre, um das Ausführen der "start.bat" dort zu vermeiden), könntest Du folgende Schleife verwenden:
for /d %%o in (*) do for /f "delims=" %%i in ('dir /a-d /b /s "%%o\start.bat"') do call "%%i"
for /d %%o in (*) do (
del /s /q "%%o\rectots.exe" >nul 2>nul
del /s /q "%%o\start.bat" >nul 2>nul
)
bastla
[Edit] Falls es Unterordner ohne "start.bat" geben sollte, wäre
for /d %%o in (*) do for /f "delims=" %%i in ('dir /a-d /b /s "%%o\start.bat" 2^>nul') do call "%%i"
[/Edit]
Hallo weissgarnix!
Grüße
bastla
P.S.: Darf ich Dich nochmals (wie schon in meinem ersten Kommentar oben) auf die Möglichkeit der "Code"- hinweisen?
wandelt nur eine ts datei in einem ordner um und nicht die anderen.
Schwer nachvollziehbar - es ändert sich ja nichts am Aufruf der Batches in den Unterordnern ...Grüße
bastla
P.S.: Darf ich Dich nochmals (wie schon in meinem ersten Kommentar oben) auf die Möglichkeit der "Code"- hinweisen?
[OT]
Moin bastla,
@weissgarnix
Ich finde den Beitrag ganz schön anstrengend, aber es liegt weniger an der Komplexität der Aufgabe, eher an der Formulierung.
Oder anders ausgedrückt: wenn du das Problem in Form eines 3minütigen Videoclips hier eingestellt hättest und wir hätten auch sehen können, was da auf deinem Monitor zu sehen ist....
-> dann wäre schon drei Tage lang ein grüner Haken dran.
Grüße
Biber
[/OT]
Moin bastla,
Zitat von @bastla:
P.S.: Darf ich Dich nochmals (wie schon in meinem ersten Kommentar oben) auf die Möglichkeit der
"Code"- hinweisen?
Falls du weiterhin diesbezüglich ignoriert wirst ->dann verschiebe ich den Beitrag in einen angemesseren Bereich.P.S.: Darf ich Dich nochmals (wie schon in meinem ersten Kommentar oben) auf die Möglichkeit der
"Code"- hinweisen?
@weissgarnix
Ich finde den Beitrag ganz schön anstrengend, aber es liegt weniger an der Komplexität der Aufgabe, eher an der Formulierung.
Oder anders ausgedrückt: wenn du das Problem in Form eines 3minütigen Videoclips hier eingestellt hättest und wir hätten auch sehen können, was da auf deinem Monitor zu sehen ist....
-> dann wäre schon drei Tage lang ein grüner Haken dran.
Grüße
Biber
[/OT]