在 Windows PowerShell 裡運行 Codex 報錯,很多時候不是 Codex 本身壞了,而是 Node.js、npm、PATH、執行策略、引號、環境變數、代理或 PowerShell 傳參方式出了問題。
這篇按常見報錯整理排查順序。
快速排查清單
先跑:
|
|
如果 codex --version 正常,代表 Codex 命令可用,再查登入、專案路徑、權限或網路。
報錯一:codex 不是內部或外部命令
常見提示:
|
|
檢查:
|
|
如果 Node 或 npm 不存在,先安裝 Node.js LTS。若 npm 存在但沒有 codex,重新安裝:
|
|
再確認:
|
|
如果還是找不到,多半是 npm 全域 bin 目錄沒有進 PATH。
報錯二:npm install -g 失敗
常見原因:
- Node.js 版本太舊;
- npm 全域目錄權限不足;
- 公司代理或憑證攔截。
檢查:
|
|
公司設備不要隨便關閉 SSL 校驗,優先看內部開發環境說明。
報錯三:運行腳本被 ExecutionPolicy 攔截
如果看到:
|
|
可信腳本可以設定目前使用者策略:
|
|
或只針對這一次:
|
|
不要把 -ExecutionPolicy Bypass 當萬能前綴。
報錯四:路徑裡有空格或中文
不要拼一整串命令。
不要這樣:
|
|
建議:
|
|
調用可執行文件時:
|
|
每個參數都應該是陣列裡的一項。
報錯五:把 Bash 教程貼到 PowerShell
Bash 寫法:
|
|
不能直接貼到 PowerShell。PowerShell 設定環境變數:
|
|
長期保存:
|
|
保存後重新開終端。
報錯六:引號、反斜線和 JSON 參數被改壞
不要手寫複雜 JSON 轉義:
|
|
更穩的是用文件:
|
|
原生命令用陣列傳參:
|
|
報錯七:中文亂碼或文件被寫壞
PowerShell 終端顯示亂碼,不一定代表文件真的壞了。用 UTF-8 讀取確認:
|
|
修改中文 Markdown 時,要明確使用 UTF-8 並在寫入後驗證,不要只看終端顯示。
報錯八:Codex 登入或 API Key 不生效
先確認你要用哪種認證:
- Codex app / CLI 登入;
- API key;
- 插件沿用本機 Codex;
- 其他工具間接調用 Codex。
檢查目前視窗是否讀到:
|
|
修改系統環境變數後,需要重新開 PowerShell。
報錯九:代理、憑證或防火牆
Codex 能啟動但請求失敗時,先測網路:
|
|
如果 DNS 或 443 不通,先修網路。瀏覽器可用但 PowerShell 不行時,查終端代理和公司憑證策略。
報錯十:命令成功失敗判斷不準
原生命令看 $LASTEXITCODE:
|
|
PowerShell cmdlet 用終止錯誤:
|
|
不要用 $LASTEXITCODE 判斷 Copy-Item、Move-Item、Remove-Item。
建議優先使用 PowerShell 7
powershell.exe 通常是 Windows PowerShell 5.1。PowerShell 7 是:
|
|
檢查:
|
|
安裝 PowerShell 7 不會自動替換 powershell.exe,VS Code 和 Windows Terminal 設定也要確認。
一份更穩的 Codex 啟動模板
|
|
帶參數時:
|
|
排查順序建議
node -v和npm -v。where.exe codex。codex --version。- PowerShell 5.1 還是 7。
- 路徑是否有空格或中文。
- 是否複製了 Bash 語法。
- 是否被執行策略攔截。
- 登入或 API key 是否在目前視窗生效。
- 代理和憑證是否正常。
- 原生命令和 cmdlet 的錯誤判斷是否混用。
小結
Windows PowerShell 運行 Codex 報錯,通常分成安裝環境、PowerShell 語法、路徑編碼、網路和認證四類。先按層排查,不要一上來重裝所有東西。使用陣列傳參、-LiteralPath、UTF-8 驗證和明確錯誤處理,Codex 在 Windows 上會穩很多。