Windows+codex开发必看:Codex如何默认使用PowerShell 7解决默认调用 PowerShell 5 导致中文、引号频繁出错的问题 📅 发布时间:2026/7/12 2:48:13 👁️ 浏览次数: 前言最近在 Windows 上使用 Codex 做本地开发时经常遇到一些很烦的问题中文路径或中文输出异常命令里有引号、JSON、正则时容易解析失败一些 PowerShell 7 支持的语法在 PowerShell 5.1 里不可用明明命令本身没问题但 Codex 调用时表现不稳定导致codex任务效率很低且白白浪费token。排查后发现Codex 本地 shell 命令默认进入的是系统自带的 Windows PowerShell 5.1Get-Process-Id$PID|Select-ObjectId,ProcessName,Path$PSVersionTable.PSVersion输出类似ProcessName: powershell Path: C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe PSVersion: 5.1.x解决思路很直接安装 PowerShell 7并让 Codex 后续默认能找到pwsh.exe。下载安装 PowerShell 7官方推荐方式可以使用 WinGet 或 MSI 安装包。Microsoft 官方文档提供了 Windows 安装说明也列出了 MSI、MSIX、ZIP 等安装方式。WinGet 安装winget install--id Microsoft.PowerShell--source winget如果想安装 MSI 版本winget install--id Microsoft.PowerShell--source winget--installer-typewix也可以从官方 GitHub Release 下载 MSI 安装包然后双击安装。个人比较推荐去官方网页直接下载MSI包https://learn.microsoft.com/zh-cn/powershell/scripting/install/install-powershell-on-windows?viewpowershell-7.6#msi安装时如果看到类似Add PowerShell to PATH的选项建议勾选。MSI 安装也支持ADD_PATH1参数用来把 PowerShell 加入 WindowsPATH环境变量。如果你使用自定义安装目录我的环境里 PowerShell 7 放在E:\PowerShell7\7\pwsh.exe这种情况下需要把目录加入系统PathE:\PowerShell7\7\注意加入的是文件夹不是pwsh.exe文件本身。操作路径系统属性 - 高级 - 环境变量 - 系统变量 - Path - 编辑 - 新建填入E:\PowerShell7\7\如下图所示一定要保证PowerShell7的路径在PowerShell5的上面这是codex优先调用PowerShell7的关键一步。因为默认情况下PowerShell7安装时间肯定更晚即使加入系统Path后位置也在PowerShell5的下面此时codex还是默认使用PowerShell5无法自动调用PowerShell7。重启 Codex 验证是否生效这一点很重要。修改系统Path后已经运行中的 Codex 进程通常不会自动拿到新的环境变量。需要完整退出并重新打开 Codex。重启前可能出现pwsh报错pwsh : The term pwsh is not recognized重启 Codex 后再验证。在 Codex 里执行Get-Process-Id$PID|Select-ObjectId,ProcessName,Path$PSVersionTable.PSVersion$PSHOME期望看到ProcessName: pwsh Path: E:\PowerShell7\7\pwsh.exe PSVersion: 7.x再执行Get-Commandpowershell,pwsh-ErrorAction SilentlyContinue|Select-ObjectName,CommandType,Source,Path|Format-List正常情况下会看到powershell.exe - C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe pwsh.exe - E:\PowerShell7\7\pwsh.exe这个结果说明pwsh已经可以调用 PowerShell 7powershell仍然是系统自带 PowerShell 5.1Codex 当前默认 shell 已经进入 PowerShell 7不建议依赖 shell_path 配置我也尝试过在 Codex 配置里写shell_path E:\\PowerShell7\\7\\pwsh.exe配置文件位置一般是C:\Users\用户名\.codex\config.toml但实测这个配置没有让当前本地命令通道稳定切到 PowerShell 7。OpenAI 官方 Codex 配置参考里也没有把shell_path列为公开配置项。所以更可靠的做法是安装 PowerShell 7把pwsh.exe所在目录加入系统Path且优先于Powershell 5重启 Codex用命令确认当前进程确实是pwsh常见问题1. 已经加了 Path为什么 Codex 还是找不到 pwsh通常是 Codex 还没有重启。可以先检查系统 Path[Environment]::GetEnvironmentVariable(Path,Machine)-split;|Where-Object{$_-matchPowerShell}也可以检查当前进程 Path$env:Path-split;|Where-Object{$_-matchPowerShell}如果系统 Path 有 PowerShell 7但当前进程 Path 没有重启 Codex 即可。2. PSModulePath 有用吗没有。启动pwsh.exe看的是Path不是PSModulePath。PSModulePath用来搜索 PowerShell 模块比如Import-Module。它不会决定启动 PowerShell 5 还是 PowerShell 7。3. 以后还会遇到中文或引号问题吗会明显减少但不能保证完全消失。但目前我自己使用下来没有再出现过codex主动说“又被Powershell咬了一口”的情况···实际查看运行日志基本全部调用pwsh命令且均执行成功。PowerShell 7 对 UTF-8、现代命令行行为、跨平台兼容性更好中文输出和脚本兼容性会稳定很多。但复杂命令仍可能经过多层解析Codex - PowerShell 7 - 外部程序 - 程序自己的参数解析下面这些场景仍要注意JSON 参数正则表达式中文路径多层嵌套引号node -epython -ccmd /cbash -lc遇到复杂命令时建议使用脚本文件、参数数组或 here-string减少一行命令里的引号嵌套。最终效果配置完成后在 Codex 中执行本地 shell 命令默认环境可以变成PowerShell 7.x E:\PowerShell7\7\pwsh.exe这能明显降低 Windows PowerShell 5.1 带来的编码、中文路径、引号解析和语法兼容问题。参考资料Microsoft PowerShell 7 Windows 安装文档https://learn.microsoft.com/en-us/powershell/scripting/install/install-powershell-on-windowsPowerShell 环境变量说明https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_environment_providerPSModulePath 说明https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_psmodulepathCodex 配置基础https://developers.openai.com/codex/config-basicCodex 配置参考https://developers.openai.com/codex/config-reference
夜灯公考 AI 全链路实测:选岗、答疑、督学、模考四个场景的技术拆解 夜灯公考 2022 年成立,有别于中公、华图的线下大班模式,它的产品逻辑从一开始就是线上小班 AI 全链路 三对一督学。在公考培训行业,大部分机构的 AI 还停留在"智能推题"层面。夜灯把 AI 嵌入了学习的每一个环节。下面逐一拆解。场… 2026/7/12 2:46:13
ENVI 5.x 遥感图像预处理实战:Landsat 8 真彩色合成与 2% 线性拉伸 ENVI 5.x 遥感图像预处理实战:Landsat 8 真彩色合成与 2% 线性拉伸技术解析当第一次在ENVI中打开Landsat 8原始数据时,很多初学者会困惑于为什么图像看起来灰暗模糊——这其实是因为原始数字量化值(DN)未经优化显示处理。本文将深入解析如何通过波段组合… 2026/7/12 2:46:13
Cocos Creator 滑动小方块,一笔画 前几天玩了个微信小游戏,一笔画,玩的挺起劲的,就弄了个Demo弄一个二位数组:const layout1: number[][] [[1, 1, 1, 1], [2, 1, 1, 1], [-1, 1, 1, -1], [1, 1, 1, -1]];1表示有方块-1表示没有方块2表示起始的方块随别啦ÿ… 2026/7/12 2:44:13
混合整数线性规划(MILP):企业决策的业务逻辑翻译器 1. 这不是数学课,是企业决策的“手术刀”:用混合整数线性规划精准切开复杂业务困局你有没有遇到过这样的场景:供应链总监在凌晨三点盯着Excel表格发呆,库存积压和缺货预警同时爆红;生产经理被销售部临时加单逼到墙角&a… 2026/7/12 4:14:44
彻底解决 Python 报错:ModuleNotFoundError: No module named ‘xxx‘ 终极指南 导读: 在运行 Python 脚本或跑开源大模型时,控制台最让人崩溃的莫过于弹出红色的: ModuleNotFoundError: No module named xxx。 明明已经执行过 pip install xxx 成功了,为什么运行代码时依然报这个错? 本文将从 Pyth… 2026/7/12 4:14:44
ROS C++中正确使用已发布的tf变换:从waitForTransform到时间戳同步 1. 项目概述:为什么“用已发布的变换”是ROS开发者绕不开的第一道实战门槛刚接触ROS的C开发者,常会陷入一个认知错觉:以为写完tf::TransformBroadcaster发了坐标系,就等于“搞定了tf”。结果一跑tf::TransformListener去查变换&am… 2026/7/12 4:12:43
时间序列预测:5个场景解析为何朴素法(Naive)优于复杂模型 时间序列预测:5个场景解析为何朴素法(Naive)优于复杂模型在数据科学领域,时间序列预测一直是一个充满挑战的课题。面对琳琅满目的预测模型,从传统的ARIMA到复杂的LSTM神经网络,许多从业者往往会陷入"模… 2026/7/12 4:12:43
gcc 13.2 与 g++ 13.2 编译 C/C++ 混合项目:5 个关键差异与兼容性配置 GCC 13.2 与 G 13.2 编译 C/C 混合项目:5 个关键差异与兼容性配置实战当你在 Linux 或 Windows(通过 MinGW)环境下开发同时包含 C 和 C 代码的项目时,理解 gcc 和 g 这对"孪生编译器"的行为差异至关重要。很多人误以为它… 2026/7/12 4:10:42
BiSheng-Adoptium:华为鲲鹏架构优化的Java开发工具包全面解析 BiSheng-Adoptium:华为鲲鹏架构优化的Java开发工具包全面解析 【免费下载链接】BiSheng-Adoptium BiSheng JDK project files on Adoptium 项目地址: https://gitcode.com/openeuler/BiSheng-Adoptium 前往项目官网免费下载:https://ar.openeuler… 2026/7/12 4:10:42
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/12 0:01:13
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/12 0:01:13
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/12 0:03:14
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/12 0:01:13
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/12 0:01:13
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/12 0:03:14