Можливі значення% PROCESSOR_ARCHITECTURE%


25

Я пишу пакетний сценарій для Windows 7 і хочу обробляти як 64-бітні, так і x86-процесори.

Які можливі значення %PROCESSOR_ARCHITECTURE%змінної середовища Windows ?


6
"мігрували з stackoverflow" ... це як би хтось не вважає, що пакетне сценарій - це правильне програмування !?
Рорі

Відповіді:


28

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

  • AMD64
  • IA64
  • x86

Зауважте, що це не каже вам архітектуру процесора, а лише процес із змінною середовища. Він повертає "x86" для 32-бітного процесу, що працює на 64-бітної Windows.


10
Існує рішення проблеми "32-бітний процес у 64-бітній Windows": просто також перевірте PROCESSOR_ARCHITEW6432, і якщо він не визначений (тобто дорівнює AMD64або IA64), то це 64-бітна машина. Джерело .
Олег Єремеєв

2
Слід додати ARMтуди зараз.
чотиримісний

2
Ця відповідь застаріла станом на травень 2019 року. Будь ласка, дивіться її замість цього.
rahuldottech підтримує Моніку

5

"EM64T" також є можливим значенням, хоча й малоймовірним. Я розумію, що ви побачите це лише у XP-64.


3

Верхня відповідь наразі застаріла. Станом на травень 2019 року, тут є всі дійсні значення %PROCESSOR_ARCHITECTURE%:

64-розрядні :

  • AMD64
  • IA64
  • ARM64
  • EM64T

( EM64Tзустрічається дуже рідко, майже завжди в Windows XP-64. Ви можете сміливо ігнорувати це у своїх сценаріях у більшості випадків, якщо ваш код не повинен бути сумісним супер .)

32-розрядні :

  • X86

( джерело )

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.