1

私は多くのプロジェクト (たとえばD:\Projects\) を持っており、それぞれに独自のディレクトリがあります。一部のディレクトリ (すべてではない) に、bat ファイル ( sonar-runner.bat) があります。サブフォルダーごとにこの .bat ファイルを順次実行する Windows バッチ スクリプトを作成します。

for /r %%i in (sonar-runner.bat) do (
@call "%%i"
pause
)
pause

ただし、このアプローチを使用すると、内部ディレクトリ内の同じファイルが実行されるという問題に直面しました(たとえばD:\Projects\Main\Inner\sonar-runner.bat)。私はこれが起こることを望んでいません。プロジェクトフォルダー(第1レベルのサブフォルダーとしましょう)からファイルを探したいだけです。どうすればそれを達成できるか教えてもらえますか?

編集 別のアプローチを試しました:

for /D %%i in (*) do (
for %%j in (%%i\sonar-runner.bat) do (
    @call "%%j"
    pause
    )
)
pause

しかし、その場合のパフォーマンスについてはわかりません。

4

2 に答える 2

1

これを試して:

for /d /r "D:\Projects" %%i in (*) do (
    pushd "%%~i"
    echo(%%i|findstr /r "^.:\\[^\\]*\\[^\\]*$" >nul&&call sonar-runner.bat
    popd
)
于 2013-05-28T13:49:17.137 に答える