在命令提示符下,我得到以下信息:
>echo %ProgramFiles%
C:\Program Files
但是,某些应用程序(在本例中为PHP,尽管我从Apache的httpd.conf中看到了相同的行为),但它是:
>php -r "echo $_ENV['ProgramFiles'];"
C:\Program Files (x86)
为什么是这样?
背景:我正在开发与主机操作系统是32位还是64位无关的脚本,对于配置文件来说,这很好用。在32位系统上,%ProgramFiles%
是“ C:\ Program Files”,而在64位系统上,%ProgramFiles%
似乎返回C:\Program Files (x86)
。我很好奇为什么在Windows命令提示符下(或在资源管理器栏中等)尝试使用同样的方法时,为什么它不成立。是否有64位命令提示符或其他内容?
%programfiles%
将返回C:\Program Files
(在Windows的默认配置下)。在Windows的x64版本上,%programfiles(x86)
返回C:\Program Files (x86)
。不知道为什么php返回相反的结果,但是您可以通过set
在x64 Windows和x86 Windows 上从命令提示符运行轻松地验证给定系统的环境变量设置。