codex生成的powershell清理脚本失效后会残留于%userprofile%.codex\builds\目录(uuid命名),需通过72小时未修改+语法解析校验双重判断失效,再用推荐脚本批量清理;同时应配置taotoken地址、延长build_timeout至180秒并首行校验防再生。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex在生成PowerShell清理脚本时,若鉴权中断或模型响应异常,会残留未完成、语法错误或指向已删除路径的构建脚本,这些脚本不会自动过期,下次调用codex exec时可能直接报错退出或误删文件。
定位失效构建脚本的存放位置
所有Codex生成的PowerShell构建脚本都统一存放在%USERPROFILE%\.codex\builds\目录下,按UUID命名(如abc123-def456.ps1),不与会话ID或时间戳关联。这个目录不会随对话删除而清空,必须手动干预。
在PowerShell中执行:Get-ChildItem "$env:USERPROFILE\.codex\builds\*.ps1" -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt (Get-Date).AddHours(-72) },筛选出72小时内未被修改的.ps1文件——这类脚本大概率已失效,因Codex正常生成后会在5分钟内执行或标记为.done状态。
验证脚本是否真正失效
对目标.ps1文件运行语法预检:try { $null = [System.Management.Automation.Language.Parser]::ParseFile($_.FullName, [ref]$null, [ref]$null) } catch { Write-Host "❌ 语法失效:$($_.Name)" -ForegroundColor Red; continue }。只要抛出异常,就说明PowerShell解析器无法识别该脚本结构,属于典型失效特征。
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
注意:不要直接双击运行或用Invoke-Expression测试,部分失效脚本含未闭合引号或Remove-Item -Recurse裸路径,会触发误删。
批量清理失效脚本
方法一:仅删语法错误+超时脚本(推荐)
在管理员PowerShell中粘贴并执行:
$buildDir = "$env:USERPROFILE\.codex\builds"; if (Test-Path $buildDir) { Get-ChildItem "$buildDir\*.ps1" -ErrorAction SilentlyContinue | ForEach-Object { try { $null = [System.Management.Automation.Language.Parser]::ParseFile($_.FullName, [ref]$null, [ref]$null); if ($_.LastWriteTime -lt (Get-Date).AddHours(-72)) { Remove-Item $_.FullName -Force -ErrorAction SilentlyContinue; Write-Host "✅ 已清理过期脚本:$($_.Name)" } } catch { Remove-Item $_.FullName -Force -ErrorAction SilentlyContinue; Write-Host "✅ 已清理语法失效脚本:$($_.Name)" -ForegroundColor Yellow } } }
方法二:暴力清空全部构建脚本(慎用)Remove-Item -Recurse -Force "$env:USERPROFILE\.codex\builds\*.ps1" -ErrorAction SilentlyContinue。【此操作不可逆,且会清除所有未执行的合法脚本】
防止新脚本再次失效
第一步:确保auth.json中的endpoint已指向TaoToken稳定地址,避免生成中途鉴权失败;
第二步:在Codex CLI中执行/codex config --set build_timeout=180,将脚本生成超时阈值从默认60秒提升至180秒,减少因网络抖动导致的截断;
第三步:每次生成构建脚本后,立即用Get-Content xxx.ps1 | Select-Object -First 5检查前5行是否含完整param(块和function定义,缺失即刻丢弃。










