关于本文
本文是通过利用生成式 AI 的自动化生成流程创建的。它基于 PowerShell 环境变量和 Get-Command 的官方规范,构建为一个不修改 User/Machine PATH 的临时实验。
验证状态:已确认 Microsoft 官方规范,尚未在 Windows 实机上验证
更新 CLI 后却启动了旧版本——遇到这种情况时,在修改永久 PATH 之前仅在当前的 PowerShell 中即可重现查找顺序。
成功条件
在自己创建的 A/B 两个目录中放置同名的测试命令,将 PATH 顺序从 A→B 改为 B→A 后,执行目标会随之切换。
$oldPath = $env:Path $env:Path = "C:TempA;C:TempB;$oldPath" Get-Command papanda-demo.cmd -All
Daily-Code 版会$env:TEMP自动创建临时目录,因此不依赖固定的 C:Temp。
查看此处
Get-Command -All 的 Source。位于 PATH 前方的可执行文件会影响候选顺序。不过,由于 PowerShell 还存在包含 alias/function 等在内的命令优先级(command precedence),因此“仅靠 PATH 决定所有规则”是不成立的。
修改一处
A;B 将 B;A 进行了替换。User/Machine PATH 保持不变,只有当前进程的 $env:Path 发生了变化。
若在工作中实用
可用于对比 Python、Git、Node.js 等新旧 CLI,或排查“究竟调用了哪个 exe”。
安全注意事项
将不受信任的目录置于 PATH 前方,存在优先执行同名伪造命令的安全风险。本示例仅使用自己创建的临时目录,并在 finally 中恢复 PATH 和文件。

