2016-10-29 19 views
2

Sagen Sie, ich habe 20 Ordner namens Ordner0 bis Ordner20 und in jedem Ordner habe ich eine test.bat-Datei. Ich möchte alle Batch-Dateien in jedem Ordner gleichzeitig durch eine andere Batch-Datei ausführen. Wenn ich die folgende Batch-Datei verwenden, wird es die test.bat in jedem Ordner nacheinander auszuführen:führen Sie eine Batch-Datei in verschiedenen Ordnern auf einmal

FOR /L %%A IN (0,1,20) DO (
cd folder%%A 
call test.bat 
cd.. 
) 

Aber wie werde ich die Batch-Dateien in jedem Ordner parallel laufen?

+2

Manchmal geraten auch die Experten auf die falsche Fährte ;-) Einfach "Call" durch "Start" im Batch ersetzen. Du weißt, dass du 21 Fenster bekommst? – LotPings

Antwort

0

Ich glaube nicht, dass es einen anderen Weg gibt, als eine Liste zu durchlaufen oder Indizes als Teil des Pfades zu verwenden, den Sie verwenden möchten. Es gibt keine eingebaute Möglichkeit, jede .bat in einem Ordner rekursiv auszuführen.

Sie können jedoch so etwas wie this verwenden Sie den Pfad in ein for-Schleife Variable zu holen und dann tun:

call %%X\test.bat 

Beispiel:

FOR /F %%A IN ('dir /ad /b /s') DO (
echo %%A\test.bat 
call %%A\test.bat 
) 

Echo, das auch zu sehen, was ins Leben gerufen wird, wo .

-1

Vielleicht:

For /R %%A In (t?st.bat) Do Start "%%~nA" /D"%%~dpA" "%%~A" 

... nur sicherstellen, dass das Skript aus dem Verzeichnis ausgeführt wird Ihre zwanzig nummerierten Ordner halten.

+0

'for/R' durchsucht das Dateisystem nicht nach' test.bat', da zwischen '' '' 'keine Platzhalter stehen, es rekursiv nur den gesamten Verzeichnisbaum auflistet und an jedes Element' test.bat' anfügt; Außerdem möchte das OP nicht rekursiv nach "test.bat" suchen, sondern nur in einer Verzeichnisebene; Um all das zu überwinden, benutze 'for/D %% D in (Ordner *) do für/F %% F in ('dir/B test.bat') starte" "/ D" %% ~ dpF ""% % ~ F "', zum Beispiel ... – aschipfl

Verwandte Themen