3

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

  echo %PROCESSOR_ARCHITECTURE%
3
  • possible duplicate of Possible values of %PROCESSOR_ARCHITECTURE% Mar 2, 2012 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, 2012 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. Mar 2, 2012 at 17:53

1 Answer 1

3

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

8
  • 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.) Mar 2, 2012 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, 2012 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, 2012 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. Mar 2, 2012 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 Mar 2, 2012 at 18:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .