windows - 为什么 %processor_architecture% 总是返回 x86 而不是 AMD64

标签 windows command-line batch-file

我正在尝试检索环境变量以检测系统是 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/

相关文章:

windows - 带有自己的按钮文本的消息框

java - 手动生成R.JAVA文件

batch-file - Psexec 仅通过 Jenkins 显示第一行

batch-file - 如何使用 BAT 文件自动创建 msinfo32.nfo 文件?

file - 此时在基本的 if then 语句中出乎意料

c# - 错误 :-(Exception from HRESULT: 0x8001010A (RPC_E_SERVERCALL_RETRYLATER))

c++ - 在不同环境中正确使用 C 虚拟函数替换

windows - 图形运行时 DirectShow WAV 文件源不产生任何声音

Java - 在没有 IDE 的情况下使用下载的包

java - 从命令行执行 Java