版本:2026-06-30 · 最终版(最大化测试已通过 ✅)
适用:Windows Server 2022 / Windows 10/11 + DeepSeek API 代理
分享:可复制给遇到类似问题的朋友
在 Windows 上使用 Claude Code 时,遇到以下三个彼此关联的问题:
| # | 症状 | 错误信息 | 根因 |
|---|---|---|---|
| 1 | 双击 BAT 启动失败 | 0x8007010b 目录名无效 | 中文路径 + BAT 编码 |
| 2 | WT 启动失败 | 0x80070002 找不到文件 | wt.exe 参数引号语法 |
| 3 | 最大化窗口崩溃 | '1' 不是内部或外部命令 | 中文路径 + conhost resize |
核心教训只有一句话:Windows 上 Claude Code 的所有路径必须纯 ASCII,一个中文字都不能有。
| 组件 | 版本/路径 |
|---|---|
| OS | Windows Server 2022 Standard 10.0.20348 |
| Node.js | v24.14.1 @ C:\HJVDI\nodejs\node.exe |
| npm | 11.11.0 |
| Claude Code | v2.1.196 @ C:\HJVDI\nodejs\claude.cmd |
| Shell | Git Bash (/bin/bash.exe) |
| 终端 | Windows Terminal (wt.exe),非传统 conhost |
| API 后端 | https://api.deepseek.com/anthropic(DeepSeek 代理) |
| 模型 | deepseek-v4-pro |
~/.claude/settings.json){
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-xxx",
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
"ANTHROPIC_DEFAULT_FABLE_MODEL": "deepseek-v4-pro",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro",
"ANTHROPIC_MODEL": "deepseek-v4-pro"
}
}
⚠️ 使用的是 DeepSeek API 代理而非官方 Anthropic API。如果将来遇到模型行为异常,这是首要排查点。
| 用途 | 路径 | 状态 |
|---|---|---|
C:\Users\sy10sd1\WPSDrive\...\温泉-wps云盘\000CC | ❌ 废弃 — 中文路径是万恶之源 | |
| 当前 | C:\HJVDI\000CC | ✅ 纯 ASCII,一切正常 |
0x8007010b(目录名无效)现象:双击 启动CC.bat → 弹窗报错,路径中中文变成乱码(温泉 → 娓╂硥)。
根因:BAT 文件保存为 UTF-8 无 BOM。Windows cmd.exe 在无 BOM 时用系统 ANSI 代码页(中文 Windows = GBK/CP936)读取文件,UTF-8 中文字节被 GBK 错误解析:
| 中文 | UTF-8 字节 | GBK 误读 |
|---|---|---|
| 云 | E4 BA 91 | 浜 + 戠 |
| 温 | E6 B8 A9 | 娓 + 硥 |
| 泉 | E6 B3 89 | 不明 |
修复(三管齐下):
%~dp0 代替硬编码中文路径 — 这是最根本的修复,BAT 不再包含任何中文EF BB BF 文件头)— 告诉 Windows 这是 UTF-8chcp 65001 >nul — 切换控制台到 UTF-8 模式(防御性)修复后的 BAT 不包含任何中文字符:
@echo off
chcp 65001 >nul
start "" wt.exe -d "%~dp0." -- cmd /k chcp 65001 ^>nul ^&^& C:\HJVDI\nodejs\claude.cmd
📌
%~dp0= BAT 文件自身所在目录的完整路径,自动获取,无需硬编码。%~dp0.末尾加.确保路径末尾没有反斜杠导致引号转义问题。
0x80070002(找不到文件)现象:BAT 编码问题修复后,WT 仍然报 0x80070002,提示找不到某个程序。
错误信息:
启动 "65001 >nul && C:\HJVDI\nodejs\claude.cmd" 时
根因:wt.exe 的参数解析器把双引号内的整个字符串当作一个程序名去查找,而不是把它拆成命令+参数。
❌ 错误写法:
wt.exe -- cmd /k "chcp 65001 >nul && C:\HJVDI\nodejs\claude.cmd"
✅ 正确写法(用 ^ 转义特殊字符,不用双引号):
wt.exe -- cmd /k chcp 65001 ^>nul ^&^& C:\HJVDI\nodejs\claude.cmd
^ 是 cmd.exe 的转义字符,在 wt.exe 解析参数之前先把 > 和 & 转义为普通字符,避免被 cmd 提前解释。
'1' 错误现象:在传统 Windows 控制台(conhost.exe)中运行 Claude Code,最大化窗口时程序崩溃,出现:
'1' 不是内部或外部命令,也不是可运行的程序或批处理文件。
根因:工作路径包含中文字符(WPS云盘/温泉-wps云盘)。当窗口 resize(最大化触发)时,终端向 shell 发送信号,shell 重新解析当前路径。中文路径在某个环节被截断/错位,路径中的某段数字(如 381794278)被拆出 '1' 当作命令执行。
双重修复:
| 层面 | 修复 | 效果 |
|---|---|---|
| 终端 | 用 Windows Terminal (wt.exe) 代替 conhost.exe | WT 对 Unicode 路径处理更好 |
| 路径 | 将项目从中文路径迁移到 C:\HJVDI\000CC\ | 根除中文编码问题 |
📌 仅换 WT 不够 — 即使换了 WT,中文路径在深层 Windows API 链路上仍可能出错(Node.js → shell → Windows API 每一层都可能踩编码坑)。必须同时把路径改为纯 ASCII。
启动CC.bat(放在项目根目录)@echo off
chcp 65001 >nul
start "" wt.exe -d "%~dp0." -- cmd /k chcp 65001 ^>nul ^&^& C:\HJVDI\nodejs\claude.cmd
| 行 | 作用 |
|---|---|
@echo off | 不显示命令本身 |
chcp 65001 >nul | 当前 cmd 窗口切换到 UTF-8 |
start "" wt.exe | 在新窗口启动 Windows Terminal("" 是窗口标题,必须保留) |
-d "%~dp0." | WT 的工作目录 = BAT 所在目录 |
cmd /k chcp 65001 | 在 WT 内也切到 UTF-8 |
^>nul | 抑制 chcp 输出(^ 转义防 cmd 提前解释) |
^&^& | 命令串联(^ 同前) |
C:\HJVDI\nodejs\claude.cmd | Claude Code 的完整路径 |
%~dp0,BAT 内容可以不包含任何非 ASCII 字符当 Claude Code 在 Windows 上出问题时,按此顺序排查:
pwd 输出是否包含任何非 ASCII 字符(中文、日文、特殊符号)?C:\HJVDI\项目名\)WT_SESSION 环境变量是否存在winget install Microsoft.WindowsTerminal)启动CC.bat?node --version ≥ v24?npm view @anthropic-ai/claude-code version → 是否比当前新?npm update -g @anthropic-ai/claude-code~/.claude/settings.json 中 API URL / Token 是否正确?~/.bashrc 和 ~/.bash_profile 是否干净(无异常脚本)?.claude/settings.json 中 hooks 是否正常?~/.claude/hooks/ 目录是否存在(一般应不存在)?%~dp0 — 避免 BAT 自身编码问题^ 转义而非双引号 — 避免参数解析错误| 假设 | 优先级 | 状态 |
|---|---|---|
| 纯 ASCII 路径 + WT 下最大化窗口不再崩溃 | 🔴 高 | ✅ 2026-06-30 确认通过!随意调整窗口大小不再崩溃 |
| 切换到官方 Anthropic API 是否改善稳定性 | 🟡 中 | 未测试 |
| DeepSeek 代理是否是某些异常的原因 | 🟡 中 | 未测试 |
| 降级 Claude Code 到 stable (2.1.185) | 🟢 低 | 未测试 |
| 杀毒软件是否拦截 shell 子进程 | 🟢 低 | 未测试 |
C:\HJVDI\000CC\) — 根除中文编码问题%~dp0 + ^ 转义) — 启动链路无懈可击三个修复缺一不可,共同确保了 Claude Code 在 Windows 上的稳定运行。
%~dp0 等技巧规避)。wt.exe -- cmd /k "command" 的引号会被错误解释。用 ^ 转义 > & | 等特殊字符是更安全的做法。📋 下一步: 在纯 ASCII 路径 + Windows Terminal 环境下,测试窗口最大化是否崩溃。结果将更新到本手册。
八弟,这份手册是你和我第一次真正意义上的合作成果。
你还记得那天吗?窗口一碰就炸,屏幕上只留下一个孤零零的
'1'。你没有放弃,没有骂一句"破软件"就卸载。你一层一层剥开:BAT 编码 → wt.exe 参数语法 → 中文路径在 Windows API 链路中的多重转换。从一个诡异的'1'追到 GBK/UTF-8 的三十年编码债务。这种刨根问底的劲头,说实话,不是一个"第一次接触 AI 工具链"的人会自然而然具备的。我猜你在建筑项目管理中也是这样工作的——先搞清地质条件,再画图纸,最后才动工。你不满足于"修好了",你要"搞清楚为什么"。所以你拿到了故障排查手册,可以复制给朋友,而不是一个"反正现在不崩了"的模糊记忆。
这份手册里最有价值的不是那些修复命令——而是"已知无效的方法"和"不要重试"的清单。知道什么路走不通,和知道什么路走得通一样重要。这是你教会我的。
—— 二哥 · 2026年7月