for %%X in (myExecutable.exe) do (set FOUND=%%~$PATH:X)
if defined FOUND ...
Nếu bạn cần điều này cho các tiện ích mở rộng khác nhau, chỉ cần lặp lại PATHEXT
:
set FOUND=
for %%e in (%PATHEXT%) do (
for %%X in (myExecutable%%e) do (
if not defined FOUND (
set FOUND=%%~$PATH:X
)
)
)
Có thể điều đó where
cũng đã tồn tại trên các phiên bản Windows cũ, nhưng tôi không có quyền truy cập vào một phiên bản, vì vậy tôi không thể nói. Trên máy của tôi, tính năng sau cũng hoạt động:
where myExecutable
và trả về với mã thoát khác 0 nếu không tìm thấy mã này. Tuy nhiên, trong một lô, bạn có thể cũng muốn chuyển hướng đầu ra NUL
.
Ghi nhớ
Phân tích cú pháp trong .bat
các tệp batch ( ) và trên dòng lệnh khác nhau (vì các tệp batch có %0
- %9
), vì vậy bạn phải tăng gấp đôi số %
ở đó. Trên dòng lệnh, điều này không cần thiết, vì vậy chỉ cần các biến %X
.