这就对上了——你现在看到的报错,是 Claude 的执行环境问题,不是 Codex 的问题。
🧠 一句话结论
❗ Claude 的工具执行默认是 bash 环境
👉 而你在给它 PowerShell 命令
所以才会这样:
Get-Command ❌(bash 不认识)
Select-Object ❌(bash 不认识)🔍 为什么会这样
Claude(尤其带 tools / MCP 的版本)通常是:
工具执行层 = Linux/bash 语义哪怕你本机是 Windows。
👉 所以你现在的真实情况是:
你在 Windows
Claude 在“类 Linux shell”里执行💣 这就导致
你写:
Get-Command ccswitchClaude 实际在执行:
/usr/bin/bash -lc "Get-Command ccswitch"👉 直接炸
🔥 正确用法(关键)
你必须明确告诉它:
✅ 用 PowerShell 包一层
用 shell 执行:
powershell -Command "Get-Command ccswitch"✅ 或者:
powershell -Command "where ccswitch"❌ 不要再直接写
Get-Command
Select-Object🧠 为什么你会感觉“频繁报错”
因为你现在在两个系统之间切换:
🟢 Codex
✔ PowerShell 友好
✔ Windows 原生🔴 Claude
✔ bash 默认
❌ 不认识 PowerShell 语法👉 所以你会觉得:
同样命令
有时候能跑
有时候全报错🎯 最核心区别(你要记住)
| 系统 | 默认 shell |
|---|---|
| Codex CLI | PowerShell / Windows |
| Claude tools | bash / Linux |
💬 最后一刀
❗ 不是“Claude 有问题”
👉 是:
你在用 Windows 语法操作一个 Linux shell
如果你接下来要稳定用 Claude + 本地工具,我可以帮你做一件很关键的事:
👉 给你一套 “跨 bash / PowerShell 不出错的命令写法模板”
这样你以后不会再踩这个坑。