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 

DOS批处理命令判断操作系统版本、执行各版本对应语句的更多相关文章

  1. DOS批处理命令递归删除给定的文件(夹),兼VC工程清理小工具

    使用dos批处理命令递归删除指定的文件(夹): (下面内容针对清理VC工程!自己按说明任意修改) 2014-06-10修改:删除前增加了[y,n]询问: echo off rem 递归删除当前文件下指 ...

  2. 执行环境可以在SQLPLUS.EXE或者DOS(命令行)中执行

    Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命 令可以把dmp文件从本地导入到远处的数据库服务器中. ...

  3. DOS批处理命令-if语句

    IF语句是批处理中执行的条件分歧处理. 批处理中,IF分歧的写法有好几种,接下来,我们来一个一个的分析IF语法的结构. 1.IF [NOT] ERRORLEVEL 番号 批处理命令 当ERRORLEV ...

  4. DOS批处理命令-几个固定名称的变量

    批处理中有一些变量的变量名称是固定的,具有特定的意义,接下来,我们来看看这些有特定意义的变量到底有什么意义. 1.%CD%   当前路径的路径名[盘符 + 路径]    - 現在のディレクトリ文字列に ...

  5. DOS批处理命令-call命令

    call命令 在批处理中调用别的批处理或者可运行程序或者 バッチ プログラムを別のバッチ プログラムから呼び出します. 语法 1.CALL [驱动盘符:][路径]文件名 [参数] 调用并执行[驱动盘符 ...

  6. DOS批处理命令-pause

    “pause”用于暂停批处理的执行器并给出提示信息,然后由用户决定是继续执行还是终端执行. 语法: pause 简单一个pause,不附带任何参数. 执行pause以后会提示一句话[按任意键继续执行] ...

  7. DOS批处理命令-@命令

    @命令是一个禁止当前语句回显的简单命令. 语法: @[command].[command]是要屏蔽的批处理命令 例如执行包含以下内容的bat文件 echo on @echo ------- @echo ...

  8. DOS批处理命令-for语句

    for是为了循环执行一系列命令而执行的命令语句. for要处理的内容不同,语法结构稍有不同.下面就各种情形来分别 1.基本的语法:FOR %変数 IN (set) DO 命令 [参数] 语法内容解析: ...

  9. cocos2d-x教程3:用php或DOS批处理命令来转换文件和解压缩zip

    在cocos2d-x使用中,须要不停的转换文件和压缩或解压文件.假设全人工来做,太麻烦了,且easy出错. 我如今把一些用的到批处理贴出来,供大家使用 自己主动把dat文件按数字排序重命名gz.DOS ...

随机推荐

  1. Socket小结

    TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间 ...

  2. Java 实现Md5算法

    package other; import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/* * ...

  3. (转)How to build an Apple Push Notification provider server (tutorial)

    转自:https://blog.serverdensity.com/how-to-build-an-apple-push-notification-provider-server-tutorial/ ...

  4. Android Paint之 setXfermode PorterDuffXfermode 讲解

    setXfermodePorterDuffXfermode图层混合模式android图像混合模式AvoidXfermode 尊重原创,欢迎转载,转载请注明: FROM  GA_studio   htt ...

  5. Linux安装mysql源码

    1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件 (1)先安装cmake(mysql5.5以后是通过cmake来编译的) [root@ rhel5 ...

  6. 设计模式(3)-对象创建型模式-Abstract Factory模式

    1.对象创建型模式 1.3           Abstract Factory模式 1.3.1 需求 在下面情况能够使用Abstract Factory模式: •  一个系统要独立于它的产品的创建. ...

  7. nyist oj 79 拦截导弹 (动态规划基础题)

    拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描写叙述 某国为了防御敌国的导弹突击.发展中一种导弹拦截系统.可是这样的导弹拦截系统有一个缺陷:尽管它的第一发炮弹可以 ...

  8. Java基础知识强化64:基本类型包装类的引入

    1. 基本类型包装类概述 (1)将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据. (2)常用的操作的之一:用于基本数据类型与字符串之间的转换. (3)基本类型和包装类的对应 ...

  9. Synopsys逻辑工艺库

    Synopsys逻辑工艺库(DC综合) 逻辑库包括仅与综合过程有关的信息且通过DC用于设计的综合和优化. 这一信息包括引脚到引脚的时序.面积.引脚类型和功耗以及其他DC需要的必须数据. 逻辑库是一个文 ...

  10. AsyncHttpClient 登录 Application Fragment 回调 监听 软键盘

    Activity /**登录界面及登陆后用户首页界面,使用两个Fragment实现*/ public class LoginActivity extends Activity implements L ...