J'ai un moyen de trouver un fichier EXE à partir de n'importe quel lecteur sans avoir à jouer avec% Path%, mais j'en ai besoin de définir comme une variable de chemin d'accès à fichier, non seulement affichée.
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
L'un des fichiers résultants pourrait être défini comme une variable (comme la dernière), mais la dernière (par date ou version) serait optimale.
--- Plus d'infos pour une question supplémentaire ---
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
)
Ceci est la version que j'ai construite en utilisant la réponse. Pour une raison quelconque, il ne capture pas de capturer l'ensemble du chemin-à-faire lorsqu'il y a un espace quelque part sur le chemin.
Pour améliorer votre code:
Utiliser dir /s /b
Pour obtenir le nom du fichier nu.
Pour obtenir le résultat de la commande dir
dans la variable, utilisez une boucle interne comme celle-ci:
FOR /F "USEBACKQ" %%F IN (`dir /s /b ffprobe.exe`) DO (
SET var=%%F
)
ECHO %var%