下面的批处理(扩展名BAT或者CMD) 可以在几乎任何一个WIN操作系统上运行 该脚本会利用 ver 和 find 命令来判断版本号 并给出相应的WIN系统.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | @echo off ver | find "5.1" > nul if errorlevel = 1 goto next0 if errorlevel = 0 goto xp :next0 ver | find "6.0" > nul if errorlevel = 1 goto next if errorlevel = 0 goto win vista :next ver | find "6.1" if errorlevel = 1 goto next1 if errorlevel = 0 goto win7 :next1 ver | find "6.2" > nul if errorlevel = 1 goto next2 if errorlevel = 0 goto win8 :next2 ver | find "6.3" > nul if errorlevel = 1 goto next3 if errorlevel = 0 goto win8.1 :next3 ver | find "6.3" > nul if errorlevel = 1 goto next4 if errorlevel = 0 goto win8.1 :next4 ver | find "10.0" > nul if errorlevel = 1 goto other if errorlevel = 0 goto win10 :xp echo XP goto :eof :win vista echo Vista goto :eof :win7 echo Win7 goto :eof :win8 echo Win8 goto :eof :win8.1 echo Win8.1 goto :eof :win10 echo Win10 goto :eof :other echo Early Win goto :eof |
@echo off ver | find "5.1" > nul if errorlevel = 1 goto next0 if errorlevel = 0 goto xp :next0 ver | find "6.0" > nul if errorlevel = 1 goto next if errorlevel = 0 goto win vista :next ver | find "6.1" if errorlevel = 1 goto next1 if errorlevel = 0 goto win7 :next1 ver | find "6.2" > nul if errorlevel = 1 goto next2 if errorlevel = 0 goto win8 :next2 ver | find "6.3" > nul if errorlevel = 1 goto next3 if errorlevel = 0 goto win8.1 :next3 ver | find "6.3" > nul if errorlevel = 1 goto next4 if errorlevel = 0 goto win8.1 :next4 ver | find "10.0" > nul if errorlevel = 1 goto other if errorlevel = 0 goto win10 :xp echo XP goto :eof :win vista echo Vista goto :eof :win7 echo Win7 goto :eof :win8 echo Win8 goto :eof :win8.1 echo Win8.1 goto :eof :win10 echo Win10 goto :eof :other echo Early Win goto :eof
在我机器 上 ver 命令给出这样的输出 之后就可以用 find 命令寻找相应的版本号 然后用 errorlevel 上一条命令返回值来进行判断 为0的时候表示找到了匹配 否则进行下一个版本的判断.
Microsoft Windows [Version 6.3.9600]
英文: https://helloacm.com/windows-batch-script-to-detect-windows-version/
GD Star Rating
loading...
本文一共 128 个汉字, 你数一下对不对.loading...
上一篇: Rosegate Farm 摘草莓 (多图)
下一篇: Peppa Pig 里的 Muddy Puddles
扫描二维码,分享本文到微信朋友圈
为啥不用 PowerShell?
这个问题 和 为啥不用 PYTHON 一样.
这只是其中一种方法.
不一样,PowerShell 是 cmd 的官方替代品,现在再搞 cmd 已经没有意义了.
Powershell 并不是默认就有安装的 主要运用在 服务器
BATCH 支持肯定比POWERSHELL广,如果技术淘汰了 那微软就会把它去掉, 但是在所有WIN版本里 BATCH还是有的.
BATCH是很轻量级的, 如果做一件事情同时可以用很多种方法,是不是找一个最轻巧最简便的方法呢?
—存在就是道理—
Windows 中同时支持多套 API 是很常见的事.CMD 的问题是它已经不发展了,新的功能都只能通过 PowerShell 来做到,如果你们要开发一套管理类的工具,最好从 PowerShell 入手.
给你举个例子吧:
VBSCRIPT也不发展了.很多软件都会提供 COM 组件,比如EXCEL,很多公司都会用VBSCRIPT来写一些例子 甚至软件内部的宏什么的也都用脚本语言来写.
因为,VBSCRIPT一样支持很广泛(从98之后就有了)
同样,几个安装脚本 没必要用到POWERSHELL这种给服务端用的脚本来写(不是说它不好)
这里只是说 在哪种用途下 CMD,VBSCRIPT更简单轻便.
你说的是 VBA,是 VBScript 的一个子集;VBScript 本身已经被淘汰了,替代品是 VB.net 和 PowerShell.VBA 还被支持是因为 Office 的庞大客户群.但 VBA 和 CMD 一样的问题是,缺乏像现代编程语言一样的支持,比如没有自动化测试~IDE 和 JIT,你可能一开始觉得写起来很快很爽,但当代码量大了之后,维护成本非常高,到处是坑.
我说的不是 VBA
我说的就是 VBSCRIPT
我说的是软件都会提供 COM接口 比如
Set obj = CreateObject(“Appliction.Excel”)
这些VBSCRIPT代码用来写 示例程序是最好不过了
你说的对,代码量大就不行,我也同意.
VBSCRIPT/CMD从来就不适合大型软件开发,不过其它小小用途还是最适合不过了.
就像我 大程序用C++/C# 小程序(实验,桌面RAD开发)就可以用PYTHON,DELPHI等.