for %%X in (myExecutable.exe) do (set FOUND=%%~$PATH:X)
if defined FOUND ...
Si vous en avez besoin pour différentes extensions, il suffit d'itérer sur PATHEXT
:
set FOUND=
for %%e in (%PATHEXT%) do (
for %%X in (myExecutable%%e) do (
if not defined FOUND (
set FOUND=%%~$PATH:X
)
)
)
C'est peut-être que where
existe aussi déjà sur les anciennes versions 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 non nul s'il n'a pas pu être trouvé. Dans un lot, vous voudrez probablement aussi rediriger la sortie vers NUL
mais
Gardez à l'esprit
Parsing en lot ( .bat
) et sur la ligne de commande diffère (parce que les fichiers batch ont %0
- %9
), vous devez donc doubler le %
là. Sur la ligne de commande, ce n'est pas nécessaire, donc les variables sont juste %X
.
1 votes
Duplicata possible de Comment vérifier l'existence d'un fichier dans un lot DOS ?
17 votes
@karlphilip : Définitivement non. La question ici est tout à fait différente.