Batch to detect if system is a 32-bit or 64-bit

philip picture philip · Feb 14, 2011 · Viewed 48.2k times · Source

Does anybody know how to create a batch file that can shell one program if its a 64-bit system or shell another if its a 32-bit system?

Answer

Joey picture Joey · Feb 14, 2011

Check for %PROCESSOR_ARCHITECTURE% being x86:

if %PROCESSOR_ARCHITECTURE%==x86 (
  rem 32 bit
) else (
  rem 64 bit
)

At least for the time being. On a server I have access to it's AMD64 but no clue how Itanium looks like, for example. But 32-bit versions always report x86.

Another option, that also works on WoW64:

for /f "skip=1 delims=" %%x in ('wmic cpu get addresswidth') do if not defined AddressWidth set AddressWidth=%%x

if %AddressWidth%==64 (
  rem 64 bit
) else (
  rem 32 bit
)