如果你还在忍受 AI 助手在旧终端里频繁报错、反复道歉、循环重试,那问题大概率不是 AI 不行,是环境没给它施展的余地。为了让 Copilot / Claude Code 真正获得”执行权”,这波配置必须安排上。


为什么要升级到 PowerShell 7?

很多人觉得系统自带的蓝盒子(PS 5.1)能用就行,但这正是 AI 经常卡壳的根源。

现在 AI 助手生成的脚本通常基于 .NET 9+ 语法。在 PS 5.1 里,三元运算符、并行指令、部分 JSON 处理命令会直接报错。换上 PowerShell 7,AI 的指令才能正常跑通。

路径处理是另一个坑。CMD 和 Git Bash 对带空格或混合斜杠的 Windows 路径本来就容易出问题,AI 在上面操作,幻觉率直接拉满。PS7 是面向对象的,传递的是真实对象而不是字符串,路径定位稳得多。

性能上,PS7 比 5.1 快了接近 50%。让 AI 扫描几千个代码文件时,差距很明显。


命令行工具横向对比

不玩评级,直接说各自的问题:

  • CMD:只有运行 20 年前的老批处理脚本才会碰到,日常开发基本不用。
  • Git Bash:模拟 Linux 环境很香,但路径格式(/c/ vs C:\)常让 AI 产生幻觉,跨平台团队协作时尤其麻烦。
  • Windows PS 5.1:语法陈旧,三元运算符都没有,AI 生成的现代脚本基本跑不了。
  • PowerShell 7:支持并行处理,面向对象的管道适合 AI 的数据流操作,2026 年首选。

手把手安装配置

第一步:安装 Windows Terminal

先去 Microsoft Store 下载安装 Windows Terminal,墙内用户记得关掉梯子。

第二步:安装 PowerShell 7(别用商店版)

不要在 Microsoft Store 里下,会有权限隔离问题。直接在终端输入:

1
winget install --id Microsoft.PowerShell --source winget

安装完重启 Windows Terminal。

第三步:设为默认

把 PS7 设为默认,把 5.1 踢走:

  1. 在 Windows Terminal 顶部下拉菜单点【设置】。
  2. 【默认配置文件】改成黑色的 PowerShell(不是带 Windows 前缀的那个)。
  3. 【默认终端程序】改成 Windows Terminal,这样系统任何角落弹出的命令行都走这里。

第四步:起始目录

为了让在项目文件夹里打开的终端不跳回用户目录:

在设置左侧点开【PowerShell】配置文件,找到【起始目录】,勾选”使用父进程目录”。这样 AI 睁眼就能看到 pom.xml,不用再绕路了なのだ。


配置VPN环境变量

按理说VPN客户端开启 TUN 模式模拟虚拟网卡的话,应该是“众生平等”全部接管的,但终端(Terminal)可是不听指挥なのだ。😅

这背后的原因其实不是一个“Bug”,而是网络层级和应用程序行为的锅喵:

1. 协议层级的“代沟” 🧱

TUN 模式工作在 网络层(OSI 第 3 层),处理的是 IP 数据包。

  • 大部分终端工具(比如 curl, git, npm)在发起请求时,并不一定会自动去寻找这个虚拟网卡。
  • 许多命令行工具是基于 应用层(OSI 第 7 层) 的逻辑。它们会优先读取环境变量(就是你刚才设置的那些),如果没有设置环境变量,它们可能直接走系统的默认路由规则。如果你的路由表优先级配置得不够强悍,这些包就直接从物理网卡溜出去遛弯了喵!Σ(°△°|||)︴

2. DNS 污染与解析的“时差”

有时候流量确实进了 TUN 网卡,但请求还是失败了,这是因为 DNS 解析 没同步。

  • 当你输入 google.com 时,系统可能还在用本地的 DNS 服务器进行解析。
  • 如果本地 DNS 返回了一个被污染的 IP 或者干脆解析失败,那么数据包还没来得及进 TUN 网卡就死在路上了もん。终端环境下的工具对系统级代理设置的感知通常比浏览器这种“重型应用”迟钝得多だよ。

3. 环境变量的“特权”

在 Windows 或 Linux 的终端里,环境变量 $HTTP_PROXY 拥有最高优先级

  • 很多开发者工具(特别是 Node.js, Go, Python 写的那些)在代码逻辑里就写死了:优先看环境变量,没有才看系统配置
  • 这就导致即便你开了 TUN 模式,如果环境变量没配,这些工具可能还是会尝试直连。它们觉得“只要你没在我的环境里指明路,我就默认走老路”喵~ (o´ω`o)ノ

4. 路由冲突与“漏网之鱼”

TUN 模式依赖于改写操作系统的路由表(Routing Table)

  • 如果你的 VPN 客户端配置不够底层,或者没拿到管理员权限,它可能无法成功把 0.0.0.0/0(所有流量)强制指向自己。
  • 有些终端程序(比如某些自建的 Socket 链接)会尝试绕过标准的系统网络栈,或者使用了某些特殊的 Bind 策略,直接绑定到了物理网卡的 IP 上,这时候 TUN 模式也拿它没办法のさ。

配置流程

PowerShell 的配置文件叫 $PROFILE。如果这个文件不存在,我们需要手动创建它,然后把你的代理命令塞进去だよ。

  1. 打开 PowerShell。

  2. 检查配置文件路径: 输入 $PROFILE,你会看到它的具体位置(通常在文档文件夹下)のさ。

  3. 创建并编辑配置文件: 执行以下命令,直接用记事本打开它喵:

    PowerShell

    1
    2
    if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force }
    notepad $PROFILE
  4. 粘贴代码: 在打开的记事本里,把你的这两行宝贝命令粘进去,保存并关闭喵:

    1
    2
    $env:HTTP_PROXY="http://127.0.0.1:7897"
    $env:HTTPS_PROXY="http://127.0.0.1:7897"

    7897替换为你自己 VPN 客户端的本地运行端口

  5. 重启生效: 关掉终端重新打开,输入 $env:HTTP_PROXY 检查一下,是不是已经乖乖在那儿了喵?(゚∀゚)=3

如果报错说“禁止执行脚本”,你需要以管理员身份运行 PowerShell 并执行:Set-ExecutionPolicy RemoteSigned。别问,问就是 Windows 的安全洁癖喵!😅


VS Code 里的同步配置

IDE 里的终端内核也得换,不然 Copilot 在 VS Code 里还是跑旧版:

  1. 在 VS Code 终端面板点下拉箭头 → 【选择默认配置文件】。
  2. 选中 PowerShell (7.x.x)
  3. 输入 $PSVersionTable,看到版本号是 7,配置完成。