zoukankan      html  css  js  c++  java
  • 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 
  • 相关阅读:
    CSS Grid网格布局全攻略
    正则表达式不要背
    前端模块化的前世今生
    关于React Hooks,你不得不知的事
    精简版LINUX系统---wdOS
    TypeScript_泛型
    typescript_类
    ES5_对象 与 继承
    TypeScript_基础数据类型
    vue-route+webpack部署单页路由项目,访问刷新出现404问题
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/3447553.html
Copyright © 2011-2022 走看看