for %%X in (myExecutable.exe) do (set FOUND=%%~$PATH:X)
if defined FOUND ...
Si vous en avez besoin pour différentes extensions, répétez simplement PATHEXT
:
set FOUND=
for %%e in (%PATHEXT%) do (
for %%X in (myExecutable%%e) do (
if not defined FOUND (
set FOUND=%%~$PATH:X
)
)
)
Peut-être que cela where
existe déjà sur les versions héritées de Windows, mais je n'y ai pas accès, donc je ne peux pas le dire. Sur ma machine, ce qui suit fonctionne également:
where myExecutable
et retourne avec un code de sortie différent de zéro s'il est introuvable. Dans un lot, vous souhaitez probablement également rediriger la sortie vers NUL
.
Gardez à l'esprit
L'analyse dans les .bat
fichiers batch ( ) et sur la ligne de commande diffère (car les fichiers batch ont %0
- %9
), vous devez donc doubler le %
. Sur la ligne de commande, ce n'est pas nécessaire, donc les variables sont justes %X
.