%PROCESSOR_ARCHITECTURE% 的可能值

30 windows command-line

我正在为 Windows 7 编写批处理脚本,并希望同时处理 64 位和 x86 处理器。

Windows%PROCESSOR_ARCHITECTURE%环境变量的可能值是什么?

Rob*_*itt 30

http://msdn.microsoft.com/en-us/library/aa384274.aspx

  • AMD64
  • IA64
  • x86

请注意,这不会告诉您处理器的架构,而只会告诉您带有环境变量的进程的架构。它为在 64 位 Windows 上运行的 32 位进程返回“x86”。

  • “64 位 Windows 上的 32 位进程”问题有一个解决方法:只需检查 `PROCESSOR_ARCHITEW6432`,如果它不是未定义的(即等于 `AMD64` 或 `IA64`),那么这是一台 64 位机器。[来源](http://blogs.msdn.com/b/david.wang/archive/2006/03/26/howto-detect-process-bitness.aspx)。 (10认同)
  • 现在应该在那里添加`ARM`。 (4认同)
  • 此答案已于 2019 年 5 月过时。请参阅 [this](https://superuser.com/a/1441469/432540) 一个。 (2认同)

und*_*ndo 11

最佳答案目前已过时。截至 2019 年 5 月,以下是 的所有有效值%PROCESSOR_ARCHITECTURE%

64 位

  • AMD64
  • IA64
  • ARM64
  • EM64T

EM64T很少见,几乎总是在 Windows XP-64 上。在大多数情况下,您可以安全地在脚本中忽略这一点,除非您的代码需要超级向后兼容。)

32 位

  • X86

来源

  • @shevy我认为这并不重要,但是fwiw,“echo %processor_architecture%”的输出对我来说都是大写的。 (2认同)

小智 6

“EM64T”也是一个可能的值,但不太可能。我的理解是您只能在 XP-64 中看到这一点。