This is a usable example showing how to check for a 32 bit OS vs a 64 bit OS in MS windows within a batch file.
This is very useful when deploying certain applications through MS Group Policy.
Example from a .bat file:
@echo off Set RegQry=HKLMHardwareDescriptionSystemCentralProcessor REG.exe Query %RegQry% > checkOS.txt Find /i "x86" < CheckOS.txt > StringCheck.txt If %ERRORLEVEL% == 0 ( CALL --32bit install goes here-- ) ELSE ( CALL --64bit install goes here-- )
The code simple checks the contents of the Registry entry then looks for the entry ‘x86’ indicating a 32 bit installation.
The batch file will leave the checkOS.txt in place on the end user machine.
Contents of the checkOS.txt file would look something like this:
HKEY_LOCAL_MACHINEHardwareDescriptionSystemCentralProcessor
Component Information REG_BINARY 00000000000000000000000000000000
Identifier REG_SZ Intel64 Family 6 Model 37 Stepping 2
Configuration Data REG_FULL_RESOURCE_DESCRIPTOR FFFFFFFFFFFFFFFF0000000000000000
ProcessorNameString REG_SZ Intel(R) Core(TM) i7 CPU M 620 @ 2.67GHz
VendorIdentifier REG_SZ GenuineIntel
FeatureSet REG_DWORD 0x21193ffe
~MHz REG_DWORD 0xa64
Update Signature REG_BINARY 000000000D000000
Update Status REG_DWORD 0x7
Previous Update Signature REG_BINARY 000000000D000000
Platform ID REG_DWORD 0x10


The following will do the exact same thing, but NOT leave any text files behind on the computer:
@echo off
Set RegQry=HKLMHardwareDescriptionSystemCentralProcessor
reg query “HKEY_LOCAL_MACHINEHardwareDescriptionSystemCentralProcessor” | find “x86” >nul
If %ERRORLEVEL% == 0 (
CALL –32bit install goes here–
) ELSE (
CALL –64bit install goes here–
)