web-dev-qa-db-ja.com

ハードドライブからEXEを見つけて、変数として設定する

パス%を使用せずに任意のドライブから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
)
 _

これは答えを使って構築されたバージョンです。何らかの理由で、パス内のどこかのスペースがあるときに、パス全体をキャプチャしないように失敗します。

2
Bricktop

あなたのコードを改善するために:

つかいます dir /s /b裸ファイル名だけを取得します。

dirコマンドの結果を変数に入れるには、そのような内部ループを使用します。

FOR /F "USEBACKQ" %%F IN (`dir /s /b ffprobe.exe`) DO (
SET var=%%F
)
ECHO %var%
 _
2
harrymc