for %%X in (myExecutable.exe) do (set FOUND=%%~$PATH:X)
if defined FOUND ...
Buna farklı uzantılar için ihtiyacınız varsa, tekrarlayın PATHEXT
:
set FOUND=
for %%e in (%PATHEXT%) do (
for %%X in (myExecutable%%e) do (
if not defined FOUND (
set FOUND=%%~$PATH:X
)
)
)
O olabilir where
ben söyleyemem böylece, aynı zamanda eski Windows sürümlerinde zaten var, ama ben birine erişimi yok. Makinemde aşağıdakiler de çalışıyor:
where myExecutable
ve bulunamazsa sıfır olmayan bir çıkış koduyla döner. Yine de bir toplu işte, muhtemelen çıktıyı da yönlendirmek istersiniz NUL
.
Aklında tut
Batch ( .bat
) dosyalarında ve komut satırında ayrıştırma farklıdır (çünkü toplu iş dosyalarında %0
- %9
) vardır, bu yüzden %
orayı ikiye katlamanız gerekir . Komut satırında bu gerekli değildir, bu nedenle değişkenler için sadece vardır %X
.