DOS批處理命令判斷操做系統版本、執行各版本對應語句


DOS批處理命令判斷操做 系統版本、執行各版本對應語句
 
昨天在家裏試用  netsh interface ip set address 這些命令更改上網IP、DNS、網關等,今天將那些代碼拿來辦公室一用發現盡報錯,纔想起來家裏電腦是WIn7系統,辦公室機器是XP系統,因而手工修改了一下 netsh 對應的一些參數,在XP下面終於能正常執行了。
  www.2cto.com  
也就是說,在WIn7和WinXP下  netsh 命令對應的參數是不同的,就好比 在XP下面的 netsh interface ip add dns 到了WIN7下,就必須得寫爲:netsh interface ip add dnsservers ,這就帶來一個大問題,原本用批處理修改網卡IP等數據就是圖方便,如今難不成要針對不一樣的系統單獨製做一個BAT文件?
 
那樣的話我本身都會以爲本身太2了,因而想到用批處理應該能夠判斷操做系統版本,而針對版本執行對應版本的語句。我本身沒搞過,固然只能在網上搜索了,找了好多網站,發現了一共3種相似的方法,因而稍加修改整理,發出來給你們測試看看,但願測試過的朋友提供本身操做系統版本及名稱【用Ver顯示的】,以便補充數據更完整的判斷。代碼見下:
 
[plain]
:home
@echo off  
cls  
@echo  ================= 判斷Windows版本 ============================  
rem 選擇測試三種方法  
@echo [1]測試方法一  
@echo [2]測試方法二  
@echo [3]測試方法三  
@echo [Q]結束測試
 
@echo ============================================================  
set /p testa=選擇測試方法(記得回車):  
if /i %testa%==1 goto test0  
if /i %testa%==2 goto test1  
if /i %testa%==3 goto test2  
if /i %testa%==Q goto exit  
    www.2cto.com  
:test0  
rem ================================方法一===============================  
rem @echo 返回值: isXPlevel=1 XP級別;isXPlevel=2 高於XP級別;isXPlevel=0 低於XP級別  
rem set isXPlevel=0  set isXPlevel=1 &  ,set isXPlevel=2 &  
ver|findstr "5\.[0-9]\.[0-9][0-9]*" > nul && (goto show0)  
ver|findstr "6\.[0-9]\.[0-9][0-9]*" > nul && (goto show01)  
goto show02  
  
:show0  
@echo ---------------- 測試方法一 ------------  
@echo           當前系統是: XP級別  
@echo ----------------------------------------  
goto end  
  
:show01  
@echo ---------------- 測試方法一 ------------  
@echo           當前系統是:高於XP級別  
@echo ----------------------------------------  
goto end  
  
:show02  
@echo ---------------- 測試方法一 ------------  
@echo           當前系統是:低於XP級別  
@echo ----------------------------------------  
goto end  
rem ================================方法一結束===============================  
    www.2cto.com  
:test1  
rem ================================方法二===============================  
ver | find "5.0." > NUL &&  goto show50  
ver | find "5.1." > NUL &&  goto show51  
ver | find "5.2." > NUL &&  goto show52  
ver | find "6.0." > NUL &&  goto show60  
ver | find "6.1." > NUL &&  goto show61  
  
:show50  
@echo ---------------- 測試方法二 ------------  
@echo 當前系統是:[ set XT=Windows2000  ]  
@echo ----------------------------------------  
goto end  
  
:show51  
@echo ---------------- 測試方法二 ------------  
@echo 當前系統是:[ set XT=WindowsXP ]  
@echo ----------------------------------------  
goto end  
  
:show52  
@echo ---------------- 測試方法二 ------------  
@echo 當前系統是:[ set XT=Windows2003 ]  
@echo ----------------------------------------  
goto end  
  
:show60  
@echo ---------------- 測試方法二 ------------  
@echo 當前系統是:[ set XT=WindowsVista ]  
@echo ----------------------------------------  
goto end  
  
:show61  
@echo ---------------- 測試方法二 ------------  
@echo 當前系統是:[ set XT=Windows7 ]  
@echo ----------------------------------------  
goto end    www.2cto.com  
rem ================================方法二結束===============================  
  
:test2  
rem ================================方法三結束===============================  
ver | find /i "6.1." > NUL  
if %errorlevel% equ 0 (goto win7)  
  
ver | find /i "5.1."  > NUL  
if %errorlevel% equ 0 (goto winXP)  
  
:NoneTest  
@echo ---------------- 測試方法三 ------------  
@echo 當前系統暫無識別數據,請直接查看系統版本:  
ver   
@echo ----------------------------------------  
goto end  
  
:win7  
@echo ---------------- 測試方法三 ------------  
@echo 當前系統是:Win7!!!  
@echo ----------------------------------------  
goto end  
  
:winXP  
@echo ---------------- 測試方法三 ------------  
@echo 當前系統是:winXP!!!  
@echo ----------------------------------------  
goto end  
rem ================================方法三結束===============================  
    www.2cto.com  
:end  
pause  
  
goto Home  
:exit 
相關文章
相關標籤/搜索