打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[整理修改] DOS 批处理命令判断操作系统版本 执行各版本对应语句
昨天在家里试用  netsh interface ip set address 这些命令更改上网IP、DNS、网关等,今天将那些代码拿来办公室一用发现尽报错,才想起来家里电脑是WIn7系统,办公室机器是XP系统,于是手工修改了一下 netsh 对应的一些参数,在XP下面终于能正常执行了。也就是说,在WIn7和WinXP下  netsh 命令对应的参数是不一样的,就比如 在XP下面的netsh interface ip add dns 到了WIN7下,就必须得写为:netsh interface ip add dnsservers ,这就带来一个大问题,本来用批处理修改网卡IP等数据就是图方便,现在难不成要针对不同的系统单独制作一个BAT文件?那样的话我自己都会觉得自己太2了,于是想到用批处理应该可以判断操作系统版本,而针对版本执行对应版本的语句。我自己没搞过,当然只能在网上搜索了,找了好多网站,发现了一共3种类似的方法,于是稍加修改整理,发出来给大家测试看看,希望测试过的朋友提供自己操作系统版本及名称【用Ver显示的】,以便补充数据更完整的判断。代码见下:
  1. :home  
  2. @echo off  
  3. cls  
  4. @echo  ================= 判断Windows版本 ============================  
  5. rem 选择测试三种方法  
  6. @echo [1]测试方法一  
  7. @echo [2]测试方法二  
  8. @echo [3]测试方法三  
  9. @echo [Q]结束测试  
  10. @echo ============================================================  
  11. set /p testa=选择测试方法(记得回车):  
  12. if /i %testa%==1 goto test0  
  13. if /i %testa%==2 goto test1  
  14. if /i %testa%==3 goto test2  
  15. if /i %testa%==Q goto exit  
  16.   
  17. :test0  
  18. rem ================================方法一===============================  
  19. rem @echo 返回值: isXPlevel=1 XP级别;isXPlevel=2 高于XP级别;isXPlevel=0 低于XP级别  
  20. rem set isXPlevel=0  set isXPlevel=1 &  ,set isXPlevel=2 &  
  21. ver|findstr "5\.[0-9]\.[0-9][0-9]*" > nul && (goto show0)  
  22. ver|findstr "6\.[0-9]\.[0-9][0-9]*" > nul && (goto show01)  
  23. goto show02  
  24.   
  25. :show0  
  26. @echo ---------------- 测试方法一 ------------  
  27. @echo           当前系统是: XP级别  
  28. @echo ----------------------------------------  
  29. goto end  
  30.   
  31. :show01  
  32. @echo ---------------- 测试方法一 ------------  
  33. @echo           当前系统是:高于XP级别  
  34. @echo ----------------------------------------  
  35. goto end  
  36.   
  37. :show02  
  38. @echo ---------------- 测试方法一 ------------  
  39. @echo           当前系统是:低于XP级别  
  40. @echo ----------------------------------------  
  41. goto end  
  42. rem ================================方法一结束===============================  
  43.   
  44. :test1  
  45. rem ================================方法二===============================  
  46. ver | find "5.0." > NUL &&  goto show50  
  47. ver | find "5.1." > NUL &&  goto show51  
  48. ver | find "5.2." > NUL &&  goto show52  
  49. ver | find "6.0." > NUL &&  goto show60  
  50. ver | find "6.1." > NUL &&  goto show61  
  51.   
  52. :show50  
  53. @echo ---------------- 测试方法二 ------------  
  54. @echo 当前系统是:[ set XT=Windows2000  ]  
  55. @echo ----------------------------------------  
  56. goto end  
  57.   
  58. :show51  
  59. @echo ---------------- 测试方法二 ------------  
  60. @echo 当前系统是:[ set XT=WindowsXP ]  
  61. @echo ----------------------------------------  
  62. goto end  
  63.   
  64. :show52  
  65. @echo ---------------- 测试方法二 ------------  
  66. @echo 当前系统是:[ set XT=Windows2003 ]  
  67. @echo ----------------------------------------  
  68. goto end  
  69.   
  70. :show60  
  71. @echo ---------------- 测试方法二 ------------  
  72. @echo 当前系统是:[ set XT=WindowsVista ]  
  73. @echo ----------------------------------------  
  74. goto end  
  75.   
  76. :show61  
  77. @echo ---------------- 测试方法二 ------------  
  78. @echo 当前系统是:[ set XT=Windows7 ]  
  79. @echo ----------------------------------------  
  80. goto end  
  81. rem ================================方法二结束===============================  
  82.   
  83. :test2  
  84. rem ================================方法三结束===============================  
  85. ver | find /i "6.1." > NUL  
  86. if %errorlevel% equ 0 (goto win7)  
  87.   
  88. ver | find /i "5.1."  > NUL  
  89. if %errorlevel% equ 0 (goto winXP)  
  90.   
  91. :NoneTest  
  92. @echo ---------------- 测试方法三 ------------  
  93. @echo 当前系统暂无识别数据,请直接查看系统版本:  
  94. ver   
  95. @echo ----------------------------------------  
  96. goto end  
  97.   
  98. :win7  
  99. @echo ---------------- 测试方法三 ------------  
  100. @echo 当前系统是:Win7!!!  
  101. @echo ----------------------------------------  
  102. goto end  
  103.   
  104. :winXP  
  105. @echo ---------------- 测试方法三 ------------  
  106. @echo 当前系统是:winXP!!!  
  107. @echo ----------------------------------------  
  108. goto end  
  109. rem ================================方法三结束===============================  
  110.   
  111. :end  
  112. pause  
  113.   
  114. goto Home  
  115. :exit  
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
电脑慢怎样彻底清理电脑系统垃圾
建立个O盘,隐藏你的好东东
批处理删除指定网站的cookie(原创)
用批处理对文件批量重命名
自动优化Windows Xp批处理文件
如何自己做个自动关机程序代码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服