for %%X in (myExecutable.exe) do (set FOUND=%%~$PATH:X)
if defined FOUND ...
Jika Anda memerlukan ini untuk ekstensi yang berbeda, cukup ulangi PATHEXT
:
set FOUND=
for %%e in (%PATHEXT%) do (
for %%X in (myExecutable%%e) do (
if not defined FOUND (
set FOUND=%%~$PATH:X
)
)
)
Mungkin itu where
juga sudah ada di versi Windows lama, tetapi saya tidak memiliki akses ke salah satunya, jadi saya tidak tahu. Di mesin saya hal berikut juga berfungsi:
where myExecutable
dan kembali dengan kode keluar bukan nol jika tidak dapat ditemukan. Namun, dalam batch, Anda mungkin juga ingin mengalihkan output ke NUL
.
Mengingat
Parsing dalam .bat
file batch ( ) dan pada baris perintah berbeda (karena file batch memiliki %0
- %9
), jadi Anda harus menggandakannya %
. Pada baris perintah ini tidak perlu, jadi untuk variabel hanya %X
.