热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[整理修改]DOS批处理命令判断操作系统版本执行各版本对应语句

昨天在家里试用netshinterfaceipsetaddress这些命令更改上网IP、DNS、网关等,今天将那些代码拿来办公室一用发现尽报错,才想起来家里电脑是WIn7系统,办公
昨天在家里试用  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显示的】,以便补充数据更完整的判断。代码见下:
: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

: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 ================================方法一结束===============================

: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
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 ================================方法三结束===============================

:end
pause

goto Home
:exit


 


推荐阅读
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • GO成神之路:接口interface|Go主题月-接口interface接口是一组方法签名,所有实现了该签名的子类都可以赋值给这个接口变量。go中有两种接口的使用场景:1.用作 ... [详细]
  • 发现《iphone3开发基础教程》中大部分说的是xib的模板,直接学习中用StoryBoard碰到很多问题,在现有阶段要花很多时间来找度娘聊天,故决定,在这次学习过程中先以xib为主,在自学完后 ... [详细]
  • TICortexM3串口转以太网例程上层应用的基础是lwIP,版本是V1.3.2。对于lwIP,陌生的同学可以到网上查查,它是是瑞士的Adam编写的一个开源TCPIP协 ... [详细]
  • 由于工作需要,接手别人用bpel写的工作流程序,一点都不懂就到网上找到一篇入门的文章,觉得这篇不错,就copy下来并添加了读书笔计以红字标记,感激写此文章的人.许多开发人员觉得BPEL很神秘,不知道 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
author-avatar
wyf叶子_594
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有