$ {env:ProgramFiles(x86)} Powershell变量在32位/ x86系统上包含什么?

Gre*_*ray 17 powershell x86

简单的问题:

如果我在32位系统上的PowerShell脚本中使用$ {env:ProgramFiles(x86)}变量,它会返回"C:\ Program Files"还是未定义?

在x64系统上,当在x64和x86模式下运行时,它将映射到"C:\ Program Files(x86)".我没有要测试的32位系统,但我希望它将映射到"C:\ Program Files"文件夹,这样我就可以用它来引用任何系统上的x86程序.

Kei*_*ill 27

${env:ProgramFiles(x86)}未在32位计算机上定义.您可以进行测试$null以验证.

  • 谢谢!我最终使用来自http://stackoverflow.com/a/17647824/17373的-ne运算符"Null coalescing"来执行此操作:`$ dir =($ {env:ProgramFiles(x86)},$ {env:ProgramFiles } -ne $ null)[0]`.不漂亮,但它的工作原理. (5认同)
  • 准确地说,在 32 位系统上,环境变量未定义,因此,例如,如果您执行“dir env:”,它将不会出现。但是,如果您尝试访问不存在的变量,PowerShell 将返回 $null。 (2认同)