Install
openclaw skills install windows-shell-encoding-doctor诊断修复 Windows 下 PowerShell/cmd/Git Bash 的乱码、引号转义、路径空格与 CRLF 等问题。当用户说:PowerShell 里跑 bash 命令报错、中文乱码怎么修、JSON 怎么安全传给命令行,或类似 Windows 终端编码问题时,使用本技能。
openclaw skills install windows-shell-encoding-doctor在 Windows 上排查 PowerShell / cmd / Git Bash 下的命令失败、乱码与换行问题。先识别 当前 shell,再归类:shell 混用、引号与转义、编码与 code page、路径与空格、CRLF/LF。用 可粘贴命令 与 references 中的清单/剧本修复;写无 BOM UTF-8 见正文与 encoding-checklist.md 中的 [System.IO.File]::WriteAllText 示例。不要一上来盲改命令。
export、grep | xargs 等)\uXXXX 字面量、mojibake、控制台编码典型问法示例:「这个 bash 命令在 PowerShell 为什么报错?」「同样命令在 Linux 能跑,Windows 不行。」
<<EOF、cat <<'EOF'、export、/dev/null、grep | xargs 之类,优先怀疑是 bash 语法被直接贴进来了。$env:NAME=...、ConvertTo-Json、Out-File、反引号转义,优先怀疑是 PowerShell 语法被贴错地方。<、|、&、@、{、} 附近报解析错误:通常是 shell 不匹配或转义问题。\uXXXX 字面量、mojibake:通常是编码问题。ConvertTo-Json,或先写临时文件再由工具读取。修命令时,优先按这个结构回答:
保持实用,不要上来长篇讲 shell 理论。
在 PowerShell 里优先用:
ConvertTo-Json -Depth N避免直接照搬 bash heredoc:
python - <<'PY'
...
PY
这不是合法的 PowerShell 语法。
PowerShell 里更稳的是:
@'
print("hello")
'@ | python -
如果引号层次复杂,优先写临时文件。
先检查:
\uXXXX优先做法:
Set-Content -Encoding UTF8[System.IO.File]::WriteAllText(..., [System.Text.UTF8Encoding]::new($false))详见 references/encoding-checklist.md。
优先检查:
优先给出带引号路径:
python ".\scripts\tool.py"
Get-Content ".\data\input file.json"
当用户把 Unix 风格命令贴到 Windows shell:
详见 references/powershell-vs-bash.md。
< 或 heredoc:先怀疑 bash 语法被贴进 PowerShell。路径相对本技能目录(仓库中多为 skill/windows-shell-encoding-doctor/...)。
| 文件 | 何时读 |
|---|---|
references/powershell-vs-bash.md | Shell 翻译、bash/PowerShell 混用判断 |
references/encoding-checklist.md | 乱码、UTF-8/BOM、JSON 转义、CRLF/LF |
references/common-failures.md | 有具体报错模式、快速归因 |
references/repair-playbooks.md | 按「输入 → 诊断 → 修复」救火 |
references/json-and-stdin-patterns.md | JSON、stdin、多行 payload、中文经管道/文件传递 |