web-dev-qa-db-fra.com

Trouver un exe de n'importe quel disque dur et la définir comme une variable

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.

2
Bricktop

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%
2
harrymc