フラグ使うとこう。 set result= for %%A in (rec auto co) do ( echo,%~nx1| findstr /ri /c:"%%A" >nul 2>nul && set result=%%A ) if "!result!" == "co" cov.exe "%%~dpnx1" if "!result!" == "auto" auto.exe "%%~dpnx1" if "!result!" == "rec" rec.exe "%%~dpnx1"
複数マッチする事がない、または複数マッチして複数実行してよいなら バッチにディレクトリパス渡してこう。(gotoのループ無し) for %%A in ("%~1\*co*") do (cov.exe "%%~A") for %%A in ("%~1\*auto*") do (auto.exe "%%~A") for %%A in ("%~1\*rec*") do (rec.exe "%%~A")