パス%を使用せずに任意のドライブからEXEファイルを見つける方法がありますが、表示されるだけでなく、ファイル間変数として設定されています。
for %i in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do @%i: 2>nul && dir /s ffprobe.exe
_
結果のファイルはすべて変数として設定できます(最後のものと同じ)、最新の(日付またはバージョン)は最適です。
---追加の質問の詳細
for %%d in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
@%%d: 2>nul && for /f "usebackq" %%f in (`dir /s /b ffprobe.exe`) do set "probe=%%f" && goto done
)
_
これは答えを使って構築されたバージョンです。何らかの理由で、パス内のどこかのスペースがあるときに、パス全体をキャプチャしないように失敗します。
あなたのコードを改善するために:
つかいます dir /s /b
裸ファイル名だけを取得します。
dir
コマンドの結果を変数に入れるには、そのような内部ループを使用します。
FOR /F "USEBACKQ" %%F IN (`dir /s /b ffprobe.exe`) DO (
SET var=%%F
)
ECHO %var%
_