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–
)