关于 windows-path-troubleshooting
面向 Claude Code 的 Windows 路径排查技能,尤其处理来自 Git Bash 的路径。它说明路径格式、转换步骤,以及文件操作错误的常见检查方法。
主要功能
- 01将 Git Bash 路径转换为 Windows 路径
- 02规范分隔符和驱动器字母
- 03处理相对、UNC 和 WSL 路径
- 04诊断文件操作错误
- 05使用路径验证清单
适用场景
- 01修复 Claude Code 中的 ENOENT 错误
- 02转换 /c/ 或 /s/ 路径
- 03解析从 Git Bash 复制的路径
- 04在 Read、Write 或 Edit 前检查路径
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill windows-path-troubleshooting安装后在 Claude Code 中输入/windows-path-troubleshooting确认已加载。
附带文件references/error-platform-advanced.md
详细介绍
🚨 关键指南
Windows 文件路径要求
强制要求:在 Windows 上始终使用反斜杠表示文件路径
在 Windows 上使用 Edit 或 Write 工具时,文件路径必须使用反斜杠(\),不得使用正斜杠(/)。
示例:
- ❌ 错误:
D:/repos/project/file.tsx - ✅ 正确:
D:\repos\project\file.tsx
适用于:
- Edit 工具的 file_path 参数
- Write 工具的 file_path 参数
- Windows 系统上的所有文件操作
文档指南
除非用户明确要求,否则绝不创建新的文档文件。
- 优先级:更新现有的 README.md 文件,而不是创建新文档
- 保持仓库整洁:保持仓库根目录整洁——除非用户另有要求,否则只保留 README.md
- 风格:文档应简洁、直接且专业,避免使用 AI 生成式语气
- 用户偏好:只有在用户明确要求编写文档时,才创建其他 .md 文件
Claude Code 的 Windows 路径故障排除
🚨 重要:在 Windows 上始终使用反斜杠表示文件路径
强制要求:在 Windows 上使用 Edit、Write 或 Read 工具时,文件路径必须使用反斜杠(\),不得使用正斜杠(/)。
规则
Windows 文件路径要求:
- ✅ 正确:
D:\repos\project\file.tsx - ❌ 错误:
D:/repos/project/file.tsx
适用于:
- Edit 工具的
file_path参数 - Write 工具的
file_path参数 - Read 工具的
file_path参数 - Windows 系统上的所有文件操作
这为何重要
在 Windows 上使用正斜杠时常见的错误消息:
Error: ENOENT: no such file or directory
根本原因:
- Windows 原生文件系统使用反斜杠(
\)作为路径分隔符 - 正斜杠(
/)在某些 Windows 环境中可用,但在 Claude Code 文件工具中不可用 - Git Bash 显示的路径使用正斜杠,但 Windows API 要求使用反斜杠
- Claude Code 的 Read/Write/Edit 工具使用要求反斜杠的 Windows 原生 API
🔍 Claude Code 中常见的 Windows 路径问题
问题 1:工具调用中使用了正斜杠
症状:
Edit tool fails with "file not found" or "no such file or directory"
原因: 从 Git Bash 输出中复制了正斜杠:
# Git Bash shows:
/s/repos/claude-plugin-marketplace/file.tsx
错误用法:
Edit(file_path="/s/repos/myproject/file.tsx")
正确用法:
Edit(file_path="S:\repos\myproject\file.tsx")
解决步骤:
- 找出 Windows 驱动器盘符(例如,
/s/→S:) - 将正斜杠替换为反斜杠
- 添加带冒号的驱动器盘符
- 使用 Windows 绝对路径格式
问题 2:Git Bash 的 MINGW 路径格式
症状:
Edit/Write/Read 工具无法识别 /s/repos/ 或 /c/Users/ 等路径
MINGW 路径格式说明:
- Git Bash 在 Windows 上使用 POSIX 风格的路径
- 驱动器盘符表示为
/c/、/d/、/s/等 - 这些是 MINGW 虚拟路径,不是 Windows 路径
- Claude Code 工具需要 Windows 原生路径
转换表:
| Git Bash(MINGW) | Windows 原生路径 |
|---|---|
/c/Users/name/ | C:\Users\name\ |
/d/repos/project/ | D:\repos\project\ |
/s/work/code/ | S:\work\code\ |
/mnt/c/Windows/ | C:\Windows\ |
转换算法:
- 从第一个路径片段提取驱动器盘符(例如,
/s/→S) - 在驱动器盘符后添加冒号(例如,
S→S:) - 将其余的正斜杠替换为反斜杠
- 组合路径:
S:+\repos\project\file.tsx
问题 3:Git Bash 中的相对路径
症状: Git Bash 中的相对路径无法在 Claude Code 工具中正确解析
原因: Git Bash 的当前工作目录使用 MINGW 格式,而 Claude Code 工具使用 Windows 格式
示例场景:
# In Git Bash:
pwd
# Shows: /s/repos/my-project
# User provides relative path:
./src/components/Button.tsx
问题:
Claude Code 无法从 MINGW 路径 /s/repos/my-project 解析 ./src/
解决方案:
- 从 Git Bash 获取完整的 Windows 路径:
pwd -W # Shows: S:/repos/my-project (Windows format with forward slashes) - 转换为正确的 Windows 路径:
S:\repos\my-project - 使用反斜杠追加相对路径:
S:\repos\my-project\src\components\Button.tsx
问题 4:环境变量展开
症状:
包含 $HOME 或 %USERPROFILE% 等环境变量的路径无法使用
Git Bash 环境变量:
echo $HOME
# Shows: /c/Users/username (MINGW format)
Windows 环境变量:
echo %USERPROFILE%
# Shows: C:\Users\username (Windows format)
最佳实践:
- Claude Code 工具的文件路径中避免使用环境变量
- 改用绝对 Windows 路径
- 如果用户提供了
$HOME,请让他们运行echo $HOME并转换结果
问题 5:文件路径中包含空格
症状: 路径中包含空格会导致错误,或出现“找不到文件”错误
正确处理方式:
✅ CORRECT: Edit(file_path="C:\Program Files\My App\config.json")
✅ CORRECT: Edit(file_path="D:\My Documents\project\file.txt")
注意事项:
- 不要在参数中的路径两侧添加引号
- 工具调用本身会处理转义
- 使用反斜杠时,Windows 路径中可以包含空格
问题 6:UNC 网络路径
症状:
\\server\share\file.txt 这类网络路径无法使用
Windows UNC 格式:
\\server\share\folder\file.txt
Git Bash 表示形式:
//server/share/folder/file.txt
在 Claude Code 中的正确用法:
Edit(file_path="\\\\server\\share\\folder\\file.txt")
注意: 在某些上下文中,由于转义需要将反斜杠加倍,但 Claude Code 工具会自动处理。
🔧 路径检测与转换算法
用户提供文件路径时,请遵循以下决策树:
步骤 1:识别路径格式
MINGW 路径(Git Bash):
- 以
/开头,后跟一个字母和/(例如/c/、/s/) - 示例:
/s/repos/project/file.tsx - 操作: 转换为 Windows 格式
Windows 路径:
- 以盘符和冒号开头(例如
C:、D:) - 使用反斜杠或正斜杠
- 示例:
S:\repos\project\file.tsx或S:/repos/project/file.tsx - 操作: 确保使用反斜杠
相对路径:
- 以
./或../开头,或仅包含文件名 - 示例:
./src/components/Button.tsx - 操作: 请用户提供完整路径,或检测当前目录
UNC 路径:
- 以
\\或//开头 - 示例:
\\server\share\file.txt - 操作: 确保使用反斜杠
步骤 2:转换流程
对于 MINGW 路径(/x/...):
Input: /s/repos/myproject/src/components/Button.tsx
Process:
1. Extract drive letter: "s"
2. Uppercase: "S"
3. Add colon: "S:"
4. Replace remaining slashes: \repos\myproject\src\components\Button.tsx
5. Combine: S:\repos\myproject\src\components\Button.tsx
Output: S:\repos\myproject\src\components\Button.tsx
对于使用正斜杠的 Windows 路径(X:/...):
Input: S:/repos/project/file.tsx
Process:
1. Detect drive letter already present: "S:"
2. Replace forward slashes with backslashes: \repos\project\file.tsx
3. Combine: S:\repos\project\file.tsx
Output: S:\repos\project\file.tsx
对于相对路径:
Input: ./src/components/Button.tsx
Current directory (from user or detection): S:\repos\my-project
Process:
1. Remove ./ prefix
2. Replace forward slashes: src\components\Button.tsx
3. Combine with current directory: S:\repos\my-project\src\components\Button.tsx
Output: S:\repos\my-project\src\components\Button.tsx
🛠️ 交互式路径修复工作流
在 Windows 上遇到文件路径错误时:
步骤 1:检测错误
错误迹象:
- “ENOENT: no such file or directory”
- “找不到文件”
- Edit/Write/Read 工具调用失败
- 用户提到“Windows”或“Git Bash”
步骤 2:分析路径
请自问:
- 用户提供的路径是否为 MINGW 格式?
- 路径是否使用正斜杠?
- 这是否为相对路径?
- 该路径是否来自 Git Bash 命令的输出?
步骤 3:请求澄清(如有需要)
如果路径存在歧义,请询问:
I see you're working on Windows with Git Bash. To ensure I use the correct path format,
could you run this command and share the output?
pwd -W
This will give me the Windows-formatted path.
步骤 4:转换并重试
转换模板:
I'll convert the path from Git Bash format to Windows format:
- Git Bash: /s/repos/project/file.tsx
- Windows: S:\repos\project\file.tsx
Retrying with the correct Windows path...
步骤 5:验证是否成功
转换后,请确认操作成功,并说明修正了什么:
✅ Successfully edited the file using the Windows path format (S:\repos\...).
Note: On Windows with Git Bash, always use backslashes (\) in file paths for
Claude Code's Edit/Write/Read tools, even though Git Bash displays paths with
forward slashes (/).
📋 故障排除清单
Windows 上的文件操作失败时:
- 检查路径分隔符:是否使用了反斜杠(
\)而非正斜杠(/)? - 检查盘符格式:是否使用了
C:而非/c/? - 检查 MINGW 转换:是否已将
/x/path转换为X:\path? - 检查相对路径与绝对路径:路径是否为以盘符开头的绝对路径?
- 检查环境变量:是否已展开
$HOME或%USERPROFILE%? - 检查空格:是否正确处理了路径中的空格?
- 检查 UNC 路径:网络路径是否采用
\\server\share格式? - 检查文件是否存在:文件是否确实存在于该路径下?
🎯 快速参考:路径转换示例
| 上下文 | 路径格式 | Claude Code 工具格式 |
|---|---|---|
| Git Bash pwd | /s/repos/project | S:\repos\project |
| Git Bash 相对路径 | ./src/file.tsx | S:\repos\project\src\file.tsx |
| Windows 文件资源管理器 | S:\repos\project\file.tsx | S:\repos\project\file.tsx ✅ |
Windows 中使用 / | S:/repos/project/file.tsx | S:\repos\project\file.tsx |
| MINGW 完整路径 | /c/Users/name/file.txt | C:\Users\name\file.txt |
| 网络共享(Git Bash) | //server/share/file.txt | \\server\share\file.txt |
| WSL 路径 | /mnt/c/repos/project | C:\repos\project |
🚀 Windows 文件操作最佳实践
1. 始终主动转换路径
不要等到出错——如果看到类似 MINGW 格式的路径,请立即转换:
User provides: /s/repos/project/file.tsx
You think: "This is MINGW format, I need to convert it to S:\repos\project\file.tsx"
You do: Convert before calling Edit/Write/Read tool
2. 在 Git Bash 中使用 pwd -W
需要获取 Windows 上的当前目录时:
# Instead of:
pwd # Shows: /s/repos/project (MINGW format)
# Use:
pwd -W # Shows: S:/repos/project (Windows format with /)
然后将正斜杠转换为反斜杠。
3. 说明路径格式变更
转换路径时务必说明:
I'll convert the Git Bash path to Windows format for the Edit tool:
- From: /s/repos/project/file.tsx
- To: S:\repos\project\file.tsx
这有助于用户了解这一要求,并在今后的交互中掌握相关知识。
4. 使用工具前进行验证
在 Windows 上调用 Edit/Write/Read 工具之前:
Pre-flight checklist:
✅ Path starts with drive letter and colon (e.g., C:, S:)
✅ Path uses backslashes (\) not forward slashes (/)
✅ Path is absolute, not relative
✅ No MINGW format (no /c/, /s/, etc.)
5. 谨慎处理用户提供的路径
用户可能会提供各种格式的路径:
- 从 Git Bash 复制(MINGW 格式)
- 从 Windows 文件资源管理器复制(Windows 格式)
- 手动输入(格式不定)
- 来自命令输出(因工具而异)
务必按需检测并转换。
错误查找、平台说明、用户指导与高级场景
references/error-platform-advanced.md 中包含常见 Claude Code Windows 路径错误的详细查找表、平台特定行为(PowerShell、CMD、Git Bash、WSL、Node/Python)、用户指导脚本,以及高级路径场景(UNC 路径、长路径、空格、特殊字符)。如果快速转换工作流无法解释路径错误,请加载该参考文档。
✅ 成功标准
满足以下条件,即表示已成功处理 Windows 路径:
- ✅ 在 Windows 上调用 Edit/Write/Read 工具时都使用反斜杠
- ✅ 在使用工具前转换 MINGW 路径
- ✅ 将相对路径解析为绝对 Windows 路径
- ✅ 用户了解转换的必要性
- ✅ 文件操作成功,且没有路径相关错误
- ✅ 整个会话中的路径格式保持一致
🆘 何时使用此技能
遇到以下情况时,请主动运用这些知识:
- 用户提到自己使用 Windows
- 用户提到 Git Bash 或 MINGW
- 看到以
/c/、/s/等开头的路径 - Edit/Write/Read 工具因“找不到文件”而失败
- 用户在 Windows 上提供带正斜杠的路径
- 需要在 Windows 系统上读取、编辑或写入文件
此技能对 Windows 用户至关重要——路径格式错误是 Windows 用户使用 Git Bash 时文件操作失败的首要原因。