請確保以系統管理員身分執行 CMD.exe,否則在執行指令時會收到「拒絕存取」的訊息。
本節包含關於在 Windows 命令列執行 PHP 的注意事項和提示。
注意:
請先閱讀手動安裝步驟!
您可以在不修改 Windows 的情況下,讓 PHP 從命令列執行。
C:\php\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3
但有一些簡單的步驟可以讓操作更簡便。其中一些步驟您可能已經執行過,但為了提供完整的逐步操作流程,我們在此重複說明。
注意:
PATH 和 PATHEXT 都是 Windows 中重要的預先存在的系統變數,請注意不要覆蓋這些變數,而是在其後新增內容。
將 PHP 執行檔的位置(根據 PHP 版本和顯示偏好設定,可能是 php.exe、php-win.exe 或 php-cli.exe)加入到 PATH 環境變數中。關於如何將適當的目錄添加到 PATH 的詳細資訊,請參閱相關的常見問題條目。
將 .PHP
副檔名添加到 PATHEXT 環境變數中。這可以與修改 PATH 環境變數同時完成。請按照常見問題中描述的相同步驟操作,但修改的是 PATHEXT 環境變數,而不是 PATH 環境變數。
注意:
.PHP
的放置位置將決定在存在相同檔名時執行哪個腳本或程式。例如,如果存在同名的批次檔,將.PHP
放在.BAT
之前將會導致執行腳本,而不是批次檔。
將 .PHP
副檔名與檔案類型關聯。這可以透過執行以下指令來完成:
assoc .php=phpfile
將 phpfile
檔案類型與相應的 PHP 執行檔關聯。這可以透過執行以下指令來完成:
ftype phpfile="C:\php\php.exe" -f "%1" -- %~2
完成這些步驟後,就可以從任何目錄執行 PHP 腳本,而無需輸入 PHP 執行檔或 .PHP
副檔名,且所有參數都將提供給腳本進行處理。
以下範例詳細說明了一些可以手動進行的登錄檔變更。
範例 #1 登錄檔變更
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php] @="phpfile" "Content Type"="application/php" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile] @="PHP Script" "EditFlags"=dword:00000000 "BrowserFlags"=dword:00000008 "AlwaysShowExt"="" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon] @="C:\\php\\php-win.exe,0" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell] @="Open" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open] @="&Open" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command] @="\"C:\\php\\php.exe\" -f \"%1\" -- %~2"
透過這些變更,相同的指令可以寫成:
"C:\PHP Scripts\script" -arg1 -arg2 -arg3
"C:\PHP Scripts"
目錄位於 PATH 環境變數中:script -arg1 -arg2 -arg3
注意:
當打算使用這種技術將 PHP 腳本作為命令列篩選器執行時,就像以下範例一樣,會有一個小問題:
或dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3腳本可能會直接卡住,並且沒有任何輸出。要使其正常運作,需要進行另一項登錄檔變更:dir | script -arg1 -arg2 -arg3關於此問題的更多資訊,請參閱此» Microsoft 知識庫文章:321788。從 Windows 10 開始,此設定似乎已被反轉,使得 Windows 10 的預設安裝會自動支援繼承的控制台控制代碼。這篇» Microsoft 論壇文章提供了相關說明。Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer] "InheritConsoleHandles"=dword:00000001
在 Windows 10 中,於提升權限的命令提示字元中僅輸入腳本名稱來啟動 php 時,會彈出一個對話方塊,要求選擇應用程式。
原來 Windows 在透過 ftype 關聯的程式無法執行 php 檔案時會出現這種情況。在這種情況下,這是因為它試圖在非管理員模式下運行 php.exe,即使是從提升權限的命令提示字元啟動也是如此。要解決此問題,請找到您的 php.exe,按右鍵,選擇「內容」、「相容性」,在設定下勾選「以系統管理員身分執行此程式」;然後也點擊「變更所有使用者的設定」。