Tôi đã thử thí nghiệm sau.
Trước khi bắt đầu, tôi đã kiểm tra biến PATH từ cmd, có giá trị sau:
Path=C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\ProgramData\Lenovo\ReadyApps;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Skype\Phone\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Calibre2\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;
Lúc đầu, tôi nghĩ rằng cmd chỉ tìm kiếm các tệp thực thi trong các thư mục chứa trong biến PATH, vì vậy tôi đã chọn ngẫu nhiên một ứng dụng - winword.exe (Microsoft Word) và cố gắng khởi chạy nó từ dòng lệnh:
start winword
Nhưng thật ngạc nhiên, chương trình ra mắt! Lý do tôi ngạc nhiên là vì tôi đã tìm kiếm trong tất cả các thư mục trong biến PATH cho tệp exe có tên là 'winword' nhưng tất cả các tìm kiếm của tôi đều trống rỗng!
Do đó, tôi đã kết luận rằng dấu nhắc lệnh phải biết tìm kiếm ở những nơi khác ngoài những nơi được chỉ định trong biến PATH để tìm kiếm các tệp thực thi.
Vì vậy, rõ ràng, điều tiếp theo tôi đã làm là tìm kiếm vị trí chính xác nơi đặt tệp thực thi 'winword'. Hóa ra winword.exe được đặt ở đây:
C:\Program Files\Microsoft Office 15\root\office15
Do đó, cho tôi ý tưởng rằng có lẽ CMD tự động xem qua ProgramFiles và ProgramFiles (x86) (và tất cả các thư mục con của chúng) khi thực hiện lệnh 'start'? Điều đó dẫn đến việc tôi cố gắng khởi chạy một ứng dụng khác được cài đặt trên máy tính của mình, Audacity, với tệp exe có tại:
C:\Program Files (x86)\Audacity
Một lần nữa, thật ngạc nhiên, Audacity đã không khởi chạy khi tôi gõ:
start audacity
tại dòng lệnh.
Sau đó tôi đã thêm thư mục chứa audacity.exe vào PATH:
set path=%path%;C:\Program Files (x86)\Audacity
sau đó tôi đã thử khởi động lại audacity:
start audacity
Chà, không ngạc nhiên, Audacity đã ra mắt.
Những gì tôi muốn biết là chính xác nơi dấu nhắc lệnh tìm kiếm thực thi? Tại sao winword.exe khởi chạy ngay cả khi thư mục chứa nó không phải là một phần của PATH, nhưng điều tương tự không đúng với audacity.exe?
Tôi cũng đã thử các ứng dụng khác. Chrome và Firefox hoạt động khi tôi sử dụng lệnh start.
CẬP NHẬT: Tôi đang chạy phiên bản Windows 6.3.9600 (Windows 8.1)