Возможные значения% PROCESSOR_ARCHITECTURE%

25

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

Каковы возможные значения %PROCESSOR_ARCHITECTURE%переменной среды Windows ?

Джефф Этвуд
источник
6
'мигрировал из stackoverflow' ... это как если бы кто-то не думал, что пакетный скриптинг - это правильное программирование !?
Рори
Верхний ответ устарел по состоянию на май 2019 Пожалуйста , смотрите этот один вместо
rahuldottech поддерживает Monica

Ответы:

28

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

  • AMD64
  • IA64
  • x86

Обратите внимание, что это говорит не об архитектуре процессора, а только о процессе с переменной окружения. Возвращает «x86» для 32-битного процесса, работающего в 64-битной Windows.

RobertPitt
источник
10
Существует обходной путь для проблемы «32-битный процесс на 64-битной Windows»: просто проверьте PROCESSOR_ARCHITEW6432также, и если она не определена (то есть равна AMD64или IA64), то это 64-битная машина. Источник .
Олег Еремеев
2
Должен добавить ARMтуда сейчас.
quadruplebucky
2
Этот ответ устарел по состоянию на май 2019 года. Пожалуйста, посмотрите этот ответ .
rahuldottech поддерживает Монику
5

«EM64T» также является возможным значением, однако маловероятным. Насколько я понимаю, вы увидите это только с XP-64.

DednDave
источник
3

Главный ответ в настоящее время устарел. По состоянию на май 2019 года все действительные значения %PROCESSOR_ARCHITECTURE%:

64-битный :

  • AMD64
  • IA64
  • ARM64
  • EM64T

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

32-разрядный :

  • X86

( источник )

rahuldottech поддерживает Монику
источник