If I had a 32 bit version of Windows installed on a 64 bit capable machine, will the following command return "x86"?

  • possible duplicate of Possible values of %PROCESSOR_ARCHITECTURE% – Andrew Lambert Mar 2 '12 at 17:43
  • I don't agree that it is a duplicatted question, it is asking about a specific situation of returning value. – Diogo Mar 2 '12 at 17:48
  • 1
    @DiogoRocha True, but the accepted answer for that question also answers this question. Specifically, that the value of %PROCESSOR_ARCHITECTURE% depends on the bitness of the application calling it. Therefore, unless the OP is using a 32 bit version of cmd.exe, under x64 Windows echo %PROCESSOR_ARCHITECTURE% will return AMD64. – Andrew Lambert Mar 2 '12 at 17:53

On this specific situation(32 system over a 64 capable processor), it will return the value of the installed architecture of your Windows, so it will be x86.

I've just tested it on my machine(that is 64 capable):

Windows buttom + Break returned 32 bits installed system(my system is on portuguese):

enter image description here

And the echo %processor_architecture% command returned me x86:

enter image description here

  • This holds true for cmd.exe since it's a native x64 application under x64 Windows. Apps running under WoW64 would get a different result (x86.) – Andrew Lambert Mar 2 '12 at 17:55
  • Have you verified this...I don't have a machine to test it on, otherwise I'd check myself. – bsara Mar 2 '12 at 17:59
  • Amazed but %Processor_architecture% have nothing to do with the application that is running, but the Windows enviroment variable. It is defined on boot and will stay until someone change it... I mean, it is not controled or will be changed by different applications over the time... – Diogo Mar 2 '12 at 18:06
  • I'm nowhere near an x64 Windows machine at the moment, so I haven't verified this personally yet. However, this Microsoft Article states that the WoW64 subsystem always sets %PROCESSOR_ARCHITECTURE% to x86. – Andrew Lambert Mar 2 '12 at 18:07
  • 2
    The values of environment variables are stored in the Registry. 32 bit applications under x64 Windows have their registry accesses redirected at the API level. See: msdn.microsoft.com/en-us/library/aa384232%28v=vs.85%29.aspx – Andrew Lambert Mar 2 '12 at 18:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.