0

当我set programfiles在命令提示符下运行命令时,我得到

ProgramFiles=C:\Program Files (x86)
ProgramFiles(x86)=C:\Program Files (x86)

但是,python中的以下代码

import os
print os.getenv("programfiles")

或者

msgbox %A_ProgramFiles% and %ProgramFiles%

在自动热键中

或者

$env:ProgramFiles

在 PowerShell 中

所有结果C:\Program Files

我不明白为什么我在 Windows 中的 Program Files Environment Variables 得到不同的结果

4

1 回答 1

2

您看到的是 32 位和 64 位应用程序之间的区别。

32 位 cmd.exe ( %SystemRoot%\SysWOW64\cmd.exe)

C:\>set programfiles
ProgramFiles=C:\Program Files (x86)
ProgramFiles(x86)=C:\Program Files (x86)

64 位 cmd.exe ( %SystemRoot%\System32\cmd.exe)

C:\>set programfiles
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)

32 位 powershell.exe ( %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe)

PS C:\> dir env:\programfiles*

Name                           Value
----                           -----
ProgramFiles(x86)              C:\Program Files (x86)
ProgramFiles                   C:\Program Files (x86)

64 位 powershell.exe ( %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe)

PS C:\> dir env:\programfiles*

Name                           Value
----                           -----
ProgramFiles(x86)              C:\Program Files (x86)
ProgramFiles                   C:\Program Files
于 2016-07-09T14:39:02.177 回答