2016-10-29 2 views
2

私は20個のfolder0 to folder20という名前のフォルダがあり、各フォルダ内にはtest.batファイルがあります。私は別のバッチファイルを介して一度に各フォルダ内のすべてのバッチファイルを実行したい。私は、次のバッチファイルを使用する場合は、各フォルダ内に次々TEST.BATを実行します:一度にさまざまなフォルダ内のバッチファイルを実行します

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

をしかし、どのように、私は、各フォルダの並列内のバッチファイルを実行するのだろうか?

+2

時には専門家でも間違ったトラックに乗る;-)バッチで 'call'を' start'に置き換えるだけです。 21個の窓があることは分かっていますか? – LotPings

答えて

0

リストを繰り返したり、使用したいパスの一部として指標を使用したりする別の方法はないと思います。各.batをフォルダ内で再帰的に実行するだけの組み込みの方法はありません。

あなたはしかし、forループの変数へのパスを取得するために thisのようなものを使用してから行うことができます

call %%X\test.bat 

例:

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

エコー場合でも起動されるかを確認すること。おそらく、

-1

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

...ちょうどスクリプトは、あなたの20番のフォルダを保持しているディレクトリから実行されていることを確認してください。

+0

'for/R'は'() 'の間にワイルドカードがないのでファイルシステムを' test.bat'で検索しません。ディレクトリツリー全体を再帰的に列挙し、各項目に 'test.bat'を追加します。さらに、OPは 'test.bat'を再帰的に検索するのではなく、1つのディレクトリレベルでのみ検索することを望みます。/D "%%〜dpF" "%d〜%d〜%d〜%d〜%d〜%d% %〜F "'、例えば... – aschipfl

関連する問題