我正在尝试检索环境变量以检测系统是 32 位还是 64 位。
但是在 64 位服务器上,环境变量 %processor_architecture%
返回 x86
而不是 AMD64
。
有人知道这件事吗?
最佳答案
您可能获取了错误的环境变量。如果您的应用程序是在 64 位操作系统上运行的 32 位应用程序,则此环境变量的进程版本将返回 x86。如果要查找机器的体系结构,可以从以下注册表项中获取:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE
或者,如果您使用的是 .NET,则可以使用此调用来获取它:
string arch = System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE",
EnvironmentVariableTarget.Machine);
从命令行你可以试试这个:
reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE
还有一个更简单的解决方案,使用 cmd
:
ECHO %PROCESSOR_ARCHITECTURE%
关于windows - 为什么 %processor_architecture% 总是返回 x86 而不是 AMD64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1738985/