带括号的环境变量导致意外的令牌"错误

时间:2014-05-12 14:34:39

标签: powershell powershell-v2.0

我有一个PowerShell(2.0)脚本,它在我的程序文件目录下运行一个可执行文件,并且我使用环境变量来引用该路径:

Start-Process "$($env:ProgramFiles)\ProgramFolder\Executable.exe"

这在我的x86机器上工作正常,但现在我试图在x64机器上运行它。由于可执行文件是32位,它位于" C:\ Program Files(x86)"下面,因此我调整了我的脚本,因为我需要使用的环境变量是{ {1}}:

ProgramFiles(x86)

我收到此错误:

  

意外的令牌'('在表达式或陈述中。

那么如果它包含括号,我如何引用该环境变量?

1 个答案:

答案 0 :(得分:3)

在这种情况下,您不需要子表达式$()

"${env:ProgramFiles(x86)}\ProgramFolder\Executable.exe"

输出:

C:\Program Files (x86)\ProgramFolder\Executable.exe

如果您仍想使用子表达式,则可以指定包含PowerShell语法字符的变量名称,如下所示:

"$(${env:ProgramFiles(x86)})\ProgramFolder\Executable.exe"