You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在PowerShell中使用环境变量路径运行EXE文件

解决PowerShell中通过环境变量路径运行可执行文件的错误

你的问题很典型——PowerShell的语法规则和CMD不一样,直接拼接环境变量和路径字符串会触发语法解析错误,下面给你讲清楚原因和几种正确的操作方式:

为什么会报错?

当你输入$Env:SystemRoot\system32\cmd.exe时,PowerShell会把$Env:SystemRoot识别为一个变量,但后续的\system32\cmd.exe没有和变量做合法的字符串拼接处理,PowerShell无法理解这个语法,所以会抛出Unexpected token的解析错误。

正确的操作方法

方法1:使用调用运算符& + 引号包裹路径

这是最直接的方式,用引号把完整的路径表达式包起来,让PowerShell先解析环境变量得到完整路径,再通过调用运算符&执行:

& "$Env:SystemRoot\system32\cmd.exe"
  • &是PowerShell的调用运算符,专门用来执行外部可执行文件或脚本;
  • 双引号会自动展开里面的环境变量,最终得到C:\Windows\system32\cmd.exe这个完整路径。

方法2:用Join-Path拼接路径(更清晰)

如果路径比较复杂,或者你想分步处理路径,可以用Join-Path命令先拼接环境变量和子路径,再执行:

# 先拼接得到完整路径
$cmdPath = Join-Path -Path $Env:SystemRoot -ChildPath "system32\cmd.exe"
# 执行程序
& $cmdPath

这个方法可读性更强,也能避免手动拼接路径时的拼写错误。

方法3:直接调用程序名(仅适用于PATH中的程序)

因为system32目录默认在系统的PATH环境变量里,所以你其实可以直接输入程序名运行:

cmd.exe

不过这个方法只适用于那些已经在PATH中的程序,如果你要运行的程序不在PATH里,还是推荐前两种方法。

内容的提问来源于stack exchange,提问作者pL3b

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 01:33:12