Możliwe wartości% PROCESSOR_ARCHITECTURE%

25

Piszę skrypt wsadowy dla systemu Windows 7 i chcę obsługiwać zarówno procesory 64-bitowe, jak i x86.

Jakie są możliwe wartości %PROCESSOR_ARCHITECTURE%zmiennej środowiskowej Windows ?

Jeff Atwood
źródło
6
„migrowane z stackoverflow” ... to tak, jakby ktoś nie uważał, że skrypty wsadowe to prawidłowe programowanie!
Rory
Najlepsza odpowiedź jest nieaktualna od maja 2019 r. Zobacz zamiast tego
rahuldottech obsługuje Monikę

Odpowiedzi:

28

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

  • AMD64
  • IA64
  • x86

Zauważ, że nie mówi to o architekturze procesora, a jedynie o procesie ze zmienną środowiskową. Zwraca „x86” dla 32-bitowego procesu uruchomionego w 64-bitowym systemie Windows.

RobertPitt
źródło
10
Istnieje obejście problemu „Proces 32-bitowy w 64-bitowym systemie Windows”: po prostu sprawdź PROCESSOR_ARCHITEW6432również, a jeśli nie jest ono niezdefiniowane (tzn. Jest równe AMD64lub IA64), oznacza to, że jest to maszyna 64-bitowa. Źródło .
Olegs Jeremejevs
2
Powinien się ARMtam teraz dodać .
quadruplebucky
2
Ta odpowiedź jest nieaktualna od maja 2019 r . Zamiast tego zobacz .
rahuldottech obsługuje Monikę
5

„EM64T” jest również możliwą wartością, choć mało prawdopodobną. Rozumiem, że zobaczysz to tylko w XP-64.

DednDave
źródło
3

Najlepsza odpowiedź jest obecnie nieaktualna. Od maja 2019 r. Podano wszystkie prawidłowe wartości %PROCESSOR_ARCHITECTURE%:

64-bitowy :

  • AMD64
  • IA64
  • ARM64
  • EM64T

( EM64Tjest bardzo rzadko spotykany, prawie zawsze w systemie Windows XP-64. W większości przypadków można bezpiecznie zignorować to w skryptach, chyba że kod musi być bardzo zgodny z poprzednimi wersjami).

32-bitowy :

  • X86

( źródło )

rahuldottech obsługuje Monikę
źródło