jlzzjlzz亚洲乱熟在线播放

系統城裝機大師 - 唯一官網:www.farandoo.com!

當前位置:首頁 > 腳本中心 > DOS/BAT > 詳細頁面

bat命令批處理判斷32位還是64位系統的多種方法

時間:2020-01-03來源:系統城作者:電腦系統城

第一種代碼:通過 %PROCESSOR_ARCHITECTURE%

可以通過cmd中 通過echo %PROCESSOR_ARCHITECTURE%


 
  1. if "%PROCESSOR_ARCHITECTURE%"=="x86" goto x86
  2. if "%PROCESSOR_ARCHITECTURE%"=="AMD64" goto x64
  3. exit
  4. :x64
  5. explorer.exe http://www.baidu.com/
  6. exit
  7.  
  8. :x86
  9. explorer.exe //www.jb51.net/

x86代表系統是32位,AMD64代表系統是64位

這段批處理代碼很簡單,如果是32位系統,就打開我們;如果是64位系統,就打開百度

當然了,這段批處理代碼并沒有實際的用途,只是做一個測試。實際情況下,這個檢測還是很有用的,比如根據不同的情況,注冊不同的服務,等等

第二種代碼:if exist %windir%\SysWOW64

實例代碼


 
  1. @echo off
  2. if exist %windir%\SysWOW64 (
  3. start http://www.baidu.com
  4. )else (
  5. start //www.jb51.net
  6. )

原理是判斷是否存在SysWOW64目錄,一般情況下64位系統都會有這個目錄。

這段批處理代碼很簡單,如果是32位系統,就打開我們;如果是64位系統,就打開百度

以下我們小編為大家分享幾個實例

使用cmd命令批處理判斷windows系統是32bit還是64bit


 
  1. @echo off
  2. ::從系統文件中獲取系統版本信息
  3. for /f "tokens=1* delims=[" %%a in ('ver') do set b=%%b
  4. ::將版本信息賦值給變量b
  5. set b=%b:* =%
  6. ::輸出指定值
  7. echo %b:~0,4%
  8. echo %PROCESSOR_ARCHITECTURE:~-1%
  9. echo %b:~0,4%%PROCESSOR_ARCHITECTURE:~-1%
  10. ::調用指定值對應的cmd命令行
  11. call:%b:~0,4%%PROCESSOR_ARCHITECTURE:~-1%
  12. pause&exit
  13. :5.1.6
  14. echo 系統版本: winxp_32位
  15. goto:eof
  16. :5.2.6
  17. echo 系統版本: win2003_32位
  18. goto:eof
  19. :5.2.4
  20. echo 系統版本: win2003_64位
  21. goto:eof
  22. :6.1.6
  23. echo 系統版本:win7_32位
  24. goto:eof
  25. :6.1.4
  26. 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


 
  1. @echo off
  2.  
  3. IF "%PROCESSOR_ARCHITECTURE%" == "X86" (
  4. echo 32位系統
  5. ) ELSE (
  6. echo 64位或更高系統
  7. )

基本上這樣就明白了吧,真多32位于64位的很多需要區分對待這里就可以分開解決了。

下面繼續為大家分享一下

bat批處理判斷系統32位或64位以及操作系統類型

方法一:

systeminfo |find "x64"

方法二:
有時候需考慮wow的情況


 
  1. IF PROCESSOR_ARCHITECTURE == amd64 or
  2. PROCESSOR_ARCHITEW6432 == amd64 THEN
  3. // OS is 64bit
  4. ELSE
  5. // OS is 32bit
  6. END IF
  7.  
  8. Another way to test for the same thing is:
  9.  
  10. IF PROCESSOR_ARCHITECTURE == x86 AND
  11. PROCESSOR_ARCHITEW6432 NOT DEFINED THEN
  12. // OS is 32bit
  13. ELSE
  14. // OS is 64bit
  15.  
  16. END IF

var中存儲的數據,PROCESSOR_ARCHITECTURE存儲的內容


 
  1. @echo off
  2. for /f "tokens=1* delims=[" %%a in ('ver') do set b=%%b
  3. set b=%b:* =%
  4. goto %b:~0,4%%PROCESSOR_ARCHITECTURE:~-1%
  5. :5.1.6
  6. echo xp_32λ
  7. goto:eof
  8.  
  9. :6.1.6
  10. echo win7_32λ
  11. goto:eof
  12. :6.1.4
  13. echo win7_64λ
  14.  
  15. :6.0.6
  16. echo vista_32
  17. ::exit
  18.  
  19. :6.0.4
  20. echo vista_64
  21. ::exit
  22. 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中,這樣做是不是只是臨時設置一次,不會影響到其它的批處理文件拷貝的路徑吧?


 
  1. @echo off
  2. 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\")
  3. pause


 
  1. @echo off
  2. if %PROCESSOR_ARCHITECTURE%==x86 (set "var=C:\Program Files") else set"var=C:\Program Files (x86)"
  3. echo %var%
  4. pause

是的,上面的代碼并沒有設置環境變量,只是設置了在批處理中的臨時局部變量而已,退出批處理就失效了.

分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載