I am trying to retrieve the environment variable to detect whether the system is 32 or 64 bit.
But on 64 bit server the environment variable %processor_architecture%
Are you actually running a 64-bit version of Windows? If you are running 32-bit Windows on a 64-bit-capable CPU, you will still get x86
.
Assuming 64bit PC with 64bit Windows installation.
%processor_architecture%
returns x86 only when getting the value in 32bit programs. In 64bit programs it returns correctly AMD64.
Example: execute echo %processor_architecture%
from:
I think part of the reason it is like this way is that the x86-64 architecture has to allow 32-bit programs to treat it as identical (as far as possible) to a 32-bit environment and make sure that 32-bit programs do not think it is 64-bit only (like the Itanium architecture).
This however makes it very frustrating to people who need to access the differences between the x86-64 architecture vs 32 bit architecture on Windows.