ali*_*ce7 28 windows command-line batch-file
我正在尝试检索环境变量以检测系统是32位还是64位.但是在64位服务器上,环境变量%processor_architecture%正在返回x86而不是AMD64.
有没有人对此有任何线索?
Ger*_*ald 50
您可能获得了错误的环境变量.如果您的应用程序是在64位操作系统上运行的32位应用程序,则此环境变量的进程版本将返回x86.如果要查找计算机的体系结构,可以从以下注册表项中获取它:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用的是.NET,那么您可以使用此调用来获取它:
string arch = System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE",
EnvironmentVariableTarget.Machine);
Run Code Online (Sandbox Code Playgroud)
从命令行,您可以尝试这样做:
reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE
Run Code Online (Sandbox Code Playgroud)
甚至有一个更简单的解决方案cmd:
ECHO %PROCESSOR_ARCHITECTURE%
Run Code Online (Sandbox Code Playgroud)
你实际上是在运行64位版本的Windows吗?如果您在支持64位的CPU上运行32位Windows,您仍然可以获得x86.
假设 64 位 PC 安装了 64 位 Windows。
%processor_architecture%仅当在 32 位程序中获取值时才返回x86 。在 64 位程序中,它正确返回AMD64。
示例:执行echo %processor_architecture%自: