題 Windows7 32和64位的批處理文件


我需要為Windows 7構建批處理文件。此.bat文件僅用於安裝應用程序。問題是我需要知道Windows 7是32位(然後運行32位安裝程序)還是Windows 7 64位(然後運行64位安裝程序)。 我可以在批處理文件中使用哪個命令來了解Windows 7是32位還是64位?

提前致謝!!!


7
2018-05-18 09:00


起源


我發誓我以前見過這個...... - Hello71


答案:


在64位環境中,您將擁有一個名為的環境變量

PROGRAMFILES(X86)

在32位環境中,您沒有該變量。所以你可以檢查一下

if defined ProgramFiles(x86) (
   REM do stuff for 64bit here
) else (
   REM do stuff for 32bit here
)

10
2018-05-18 09:45





如果您不想使用臨時txt文件,請使用管道:

Set RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
REG.exe Query %RegQry%  | Find /i "x86" 
If %ERRORLEVEL% == 0 (
    GOTO X86
) ELSE (
    GOTO X64
)


:X86

Commands here

GOTO END

:X64

commands here

:End

4
2017-09-03 08:37





使用DEFINED時,不得使用%符號包含變量名稱:

if defined ProgramFiles(x86) (
   :: do stuff for 64bit here
) else (
   :: do stuff for 32bit here
)

3
2018-05-20 03:31





您可以使用環境變量PROCESSOR_ARCHITECTURE來確定進程本身是以32位還是64位運行。值為AMD64或x86。

你需要小心。如果您的批處理文件是從32位版本的CMD.EXE(在\ Windows \ SysWOW64中)運行的,則此變量將設置為“x86”,而如果來自\ Windows中的CMD.EXE則為“AMD64” 64位版本的Windows上的System32。


0