不要再走歪路了, 前面推文回答的基本都是亂講 XD
雖然這個問題跟 Python 其實一點關係也沒有, 所以會這樣也是正常
如果你給 start 指令的參數不是絕對或相對路徑, 而且是執行檔
那麼它會用 ShellExecuteEx 執行它
這個 Windows API 函式會參照 registry 這個路徑下面的值
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths
如果你用 regedit 打開登錄檔, 會發現這下面包含了一堆 XXX.exe 名稱
這就是用來參照 start 獲得的執行檔的真實位置
例如我的長這樣(我沒裝 Google Chrome 所以這裡用 Firefox 舉例)
https://d.pr/i/dt6idm
當你輸入 start firefox.exe 而當前路徑找不到這個執行檔時
Windows 會去找 HKLM\...\App Paths\firefox.exe\ 的值來用
因而可以正確執行, 不需要設定完整路徑
這個 registry 值通常是在程式安裝時設定
如果沒設好, 有可能是當初安裝時出錯或毀損之類的
不過如果有問題, 那也沒辦法, 就不能用了
如果你要修復倒是不難, 打開 regedit 把該有的值填進去就好
不過如果你要保證每台電腦都一定能正確執行, 那大概就辦不到
因為你實在沒辦法知道每台電腦的安裝是不是都完全正確
話又說回來, 如果你只是想打開網頁, 那其實根本不用這麼麻煩
用 start <網址> 就可以直接開了, 根本不需要指定程式
只是它會用預設網頁瀏覽器(所以可能不是 Google Chrome)
但是或許這也是好事
或者既然你是寫 Python, 其實有個 module 叫 webbrowser
https://docs.python.org/3.6/library/webbrowser.html
這個就是用環境變數來找瀏覽器了