Próbowałem następującego eksperymentu.
Przed rozpoczęciem sprawdziłem zmienną PATH z cmd, która ma następującą wartość:
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\;
Na początku myślałem, że cmd szuka tylko plików wykonywalnych w katalogach zawartych w zmiennej PATH, więc losowo wybrałem aplikację - winword.exe (Microsoft Word) i próbowałem uruchomić ją z wiersza poleceń:
start winword
Ale ku mojemu zaskoczeniu program uruchamia się! Jestem zaskoczony, ponieważ przeszukałem wszystkie katalogi w zmiennej PATH w poszukiwaniu pliku exe o nazwie „winword”, ale wszystkie moje wyszukiwania były puste!
Doszedłem zatem do wniosku, że wiersz polecenia musiał znać wyszukiwanie w miejscach innych niż te określone w zmiennej PATH, aby szukać plików wykonywalnych.
Oczywiście następną rzeczą, jaką zrobiłem, było poszukiwanie dokładnej lokalizacji, w której znajduje się plik wykonywalny „winword”. Okazuje się, że winword.exe znajduje się tutaj:
C:\Program Files\Microsoft Office 15\root\office15
Stąd pomysł, że CMD może automatycznie przeglądać ProgramFiles i ProgramFiles (x86) (i wszystkie ich podkatalogi) podczas wykonywania polecenia „start”? Co skłoniło mnie do próby uruchomienia innej aplikacji zainstalowanej na moim komputerze, Audacity, z plikiem exe znajdującym się pod adresem:
C:\Program Files (x86)\Audacity
Ponownie, ku mojemu zaskoczeniu, Audacity nie uruchomiło się podczas pisania:
start audacity
w wierszu poleceń.
Następnie dodałem katalog zawierający audacity.exe do PATH:
set path=%path%;C:\Program Files (x86)\Audacity
po czym spróbowałem ponownie uruchomić audacity:
start audacity
Nic dziwnego, że uruchomiono Audacity.
Chcę wiedzieć, gdzie dokładnie wiersz polecenia szuka plików wykonywalnych? Dlaczego program winword.exe uruchamia się nawet wtedy, gdy katalog go zawierający nie jest częścią ŚCIEŻKI, ale to samo nie jest prawdą w przypadku audacity.exe?
Próbowałem też innych aplikacji. Chrome i Firefox działają, gdy używam polecenia start.
AKTUALIZACJA: Korzystam z systemu Windows w wersji 6.3.9600 (Windows 8.1)