bat判斷windows系統型別
第一種程式碼:通過 %PROCESSOR_ARCHITECTURE%
可以通過cmd中 通過echo %PROCESSOR_ARCHITECTURE%
if "%PROCESSOR_ARCHITECTURE%"=="x86" goto x86
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" goto x64
exit
:x64
explorer.exe http://www.baidu.com/
exit
:x86
explorer.exe //www.jb51.net/
x86代表系統是32位,AMD64代表系統是64位
這段批處理程式碼很簡單,如果是32位系統,就開啟指令碼之家;如果是64位系統,就開啟百度
當然了,這段批處理程式碼並沒有實際的用途,只是做一個測試。實際情況下,這個檢測還是很有用的,比如根據不同的情況,註冊不同的服務,等等
第二種程式碼:if exist %windir%\SysWOW64
例項程式碼
@echo off
if exist %windir%\SysWOW64 (
start http://www.baidu.com
)else (
start //www.jb51.net
)
原理是判斷是否存在SysWOW64目錄,一般情況下64位系統都會有這個目錄。
這段批處理程式碼很簡單,如果是32位系統,就開啟指令碼之家;如果是64位系統,就開啟百度
以下指令碼之家小編為大家分享幾個例項
使用cmd命令批處理判斷windows系統是32bit還是64bit
@echo off ::從系統檔案中獲取系統版本資訊 for /f "tokens=1* delims=[" %%a in ('ver') do set b=%%b ::將版本資訊賦值給變數b set b=%b:* =% ::輸出指定值 echo %b:~0,4% echo %PROCESSOR_ARCHITECTURE:~-1% echo %b:~0,4%%PROCESSOR_ARCHITECTURE:~-1% ::呼叫指定值對應的cmd命令列 call:%b:~0,4%%PROCESSOR_ARCHITECTURE:~-1% pause&exit :5.1.6 echo 系統版本: winxp_32位 goto:eof :5.2.6 echo 系統版本: win2003_32位 goto:eof :5.2.4 echo 系統版本: win2003_64位 goto:eof :6.1.6 echo 系統版本:win7_32位 goto:eof :6.1.4 echo 系統版本:win7或win2008_64位
輸出如下:
繼續補充
64位系統登錄檔:
[HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0] “Identifier”=”Intel64 Family 6 Model 62 Stepping 4”
64位系統系統變數:
PROCESSOR_IDENTIFIER = Intel64 Family 6 Model 62 Stepping 4, GenuineIntel
PROCESSOR_ARCHITECTURE = AMD64
@echo off
IF "%PROCESSOR_ARCHITECTURE%" == "X86" (
echo 32位系統
) ELSE (
echo 64位或更高系統
)
基本上這樣就明白了吧,真多32位於64位的很多需要區分對待這裡就可以分開解決了。
下面繼續為大家分享一下
bat批處理判斷系統32位或64位以及作業系統型別
方法一:
systeminfo |find "x64"
方法二: 有時候需考慮wow的情況
IF PROCESSOR_ARCHITECTURE == amd64 or
PROCESSOR_ARCHITEW6432 == amd64 THEN
// OS is 64bit
ELSE
// OS is 32bit
END IF
Another way to test for the same thing is:
IF PROCESSOR_ARCHITECTURE == x86 AND
PROCESSOR_ARCHITEW6432 NOT DEFINED THEN
// OS is 32bit
ELSE
// OS is 64bit
END IF
var中儲存的資料,PROCESSOR_ARCHITECTURE儲存的內容
@echo off
for /f "tokens=1* delims=[" %%a in ('ver') do set b=%%b
set b=%b:* =%
goto %b:~0,4%%PROCESSOR_ARCHITECTURE:~-1%
:5.1.6
echo xp_32λ
goto:eof
:6.1.6
echo win7_32λ
goto:eof
:6.1.4
echo win7_64λ
:6.0.6
echo vista_32
::exit
:6.0.4
echo vista_64
::exit
pause
批處理檢測32位64位系統,結果到文字,判斷後將資料夾123拷貝相應program files或program files(x86)中?
通過批處理程式檢測系統是32位還是64位,將結果儲存到c:\a.txt檔案中,並且通過判斷的結果32位系統將123資料夾拷貝到C:\Program Files資料夾中,是64位系統則將123資料夾拷貝到C:\program files(x86)資料夾中。 比如我有很多綠色軟體,不是每一個軟體都需要判斷32位還是64位,都只是拷貝到C:\Program Files中,這樣做是不是隻是臨時設定一次,不會影響到其它的批處理檔案拷貝的路徑吧?
@echo off
if %PROCESSOR_ARCHITECTURE%==x86 (echo 32位系統>c:\a.txt&xcopy /d/y/c/e/h/k "%~dp0123" "C:\Program Files\123\") else (echo 64位系統>c:\a.txt&xcopy /d/y/c/e/h/k "%~dp0123" "C:\Program Files (x86)\123\")
pause
或
@echo off
if %PROCESSOR_ARCHITECTURE%==x86 (set "var=C:\Program Files") else set "var=C:\Program Files (x86)"
echo %var%
pause
是的,上面的程式碼並沒有設定環境變數,只是設定了在批處理中的臨時區域性變數而已,退出批處理就失效了.