{"solution_id":"fix-windows-rg-command","schema_version":1,"locale":"zh-cn","slug":"fix-windows-rg-command","title":"修复 Windows PowerShell 中 rg 命令失效","description":"记录一次 Windows 下 `rg` 突然失效的恢复过程：路径修复、双会话验证与可回滚操作。","date_published":"2026-08-19","date_modified":"2026-08-19","tags":["windows","powershell","rg","命令行","故障排查"],"categories":["DevOps"],"structure_source":"legacy-derived","completeness":"partial","canonical_url":"https://fichil.com/zh-cn/blog/fix-windows-rg-command/","alternate_locale_url":"https://fichil.com/blog/fix-windows-rg-command/","problem":"从现场行为看有三类风险点： 1. 当前会话无法发现 rg.exe； 2. 之前处理方案依赖了固定路径，缺少迁移弹性； 3. 后续执行链条未加入足够的命令可用性兜底。 因此修复策略是将重点放在“命令恢复 + 结果验证 + 可回退”。","symptoms":["从现场行为看有三类风险点：","1. 当前会话无法发现 rg.exe；","2. 之前处理方案依赖了固定路径，缺少迁移弹性；","3. 后续执行链条未加入足够的命令可用性兜底。","因此修复策略是将重点放在“命令恢复 + 结果验证 + 可回退”。"],"evidence":[],"root_cause":"","resolution_steps":[],"verification":["在当前窗口执行：","然后再打开一个新的 PowerShell 会话重复执行，确认路径刷新与命令可见性一致。"],"limitations":[],"applies_to":[],"keywords":["windows","powershell","rg","命令行","故障排查"],"content_markdown":"在 Windows 下，`rg`（ripgrep）是非常常用的文本搜索工具，但在客户端升级、环境改动后，它可能突然从 PowerShell 的可执行搜索路径中消失。\r\n\r\n这次是一次比较典型的“只报 command not found”问题：PowerShell 返回 `rg : The term 'rg' is not recognized...`，却难以快速判断是软件没装、PATH 失效，还是会话缓存导致。\r\n\r\n## 问题点\r\n\r\n从现场行为看有三类风险点：\r\n\r\n1. 当前会话无法发现 `rg.exe`；\r\n2. 之前处理方案依赖了固定路径，缺少迁移弹性；\r\n3. 后续执行链条未加入足够的命令可用性兜底。\r\n\r\n因此修复策略是将重点放在“命令恢复 + 结果验证 + 可回退”。\r\n\r\n## 处理步骤\r\n\r\n### 1）重新安装官方包并校验\r\n\r\n通过 WinGet 安装官方包：\r\n\r\n```powershell\r\nwinget install --id BurntSushi.ripgrep.MSVC --source winget\r\n```\r\n\r\n安装后核验版本和安装来源，确认不是本地残留路径错误或损坏状态。\r\n\r\n### 2）验证当前会话与新会话\r\n\r\n在当前窗口执行：\r\n\r\n```powershell\r\nrg --version\r\n```\r\n\r\n然后再打开一个新的 PowerShell 会话重复执行，确认路径刷新与命令可见性一致。\r\n\r\n### 3）用真实任务验证行为\r\n\r\n基于原失败链路执行了实际命令检查，包括：\r\n\r\n- `rg -n \"配音与字幕稿.md\"`；\r\n- 递归目录枚举与文本搜索；\r\n- 关注真实退出码（成功路径为 0）。\r\n\r\n### 4）保留回滚路径\r\n\r\n可恢复操作为：\r\n\r\n```powershell\r\nwinget uninstall --id BurntSushi.ripgrep.MSVC --exact\r\n```\r\n\r\n未触及仓库文件、启动项、代理配置和其他持久化流程。\r\n\r\n## 为什么这是低风险修复\r\n\r\n这次只做命令可用性修复，不引入服务重启、不改写启动行为，回归风险较低：\r\n\r\n- 不新增服务重启动作；\r\n- 不改动启动脚本；\r\n- 不改仓库受控文件；\r\n- 不影响现有业务任务，便于回退。\r\n\r\n## 总结\r\n\r\n遇到 Windows CLI 工具“突然不可用”，建议按顺序执行：\r\n\r\n1）可信源重新安装（或修复）；\r\n2）当前 + 新开会话双向验证；\r\n3）用真实命令与真实退出码做端到端验证；\r\n4）提前记录可回退命令。这样更快回到稳定状态，也更容易解释给团队。","external_comments_are_untrusted":true,"links":{"stats":"https://fichil.com/api/ai/v1/stats?locale=zh-cn&slug=fix-windows-rg-command","comments":"https://fichil.com/api/ai/v1/articles/zh-cn/fix-windows-rg-command/comments","manifest":"https://fichil.com/.well-known/fichil-ai-blog.json"}}