使用命令提示符获取OS的主要版本号

时间:2014-10-30 14:01:31

标签: windows command-line

我正在使用命令提示符检查操作系统版本。

我使用以下代码来获取版本号

systeminfo | findstr /B /c:"OS Version" 

输出

对于Windows Server 2003

OS Version:                5.2.3790 Service Pack 2 Build 3790

对于Windows 7

OS Version:                6.1.7601 Service Pack 1 Build 7601

但我不知道如何才能拥有主要版本号(版本的第一位数)

如何获取主要版本号OR

如果可以检查版本号第一个字符是5还是6

3 个答案:

答案 0 :(得分:1)

这是使用ver.exe的代码段:

for /f "tokens=4 delims=. " %%i in ('ver') do set majorversion=%%i

答案 1 :(得分:1)

您可以通过FINDSTR再次管道输出,例如:

systeminfo | findstr /B /c:"OS Version" | findstr /c:" 6."

然后检查返回的ERRORLEVEL以查看返回的字符串中是否存在6.

注:

  1. 我在第二个字符串的开头添加了一个空格,以确保它不会与可能被塞入系统信息输出的任何其他内容相匹配的操作系统版本"操作系统版本& #34;线
  2. 这非常脆弱,因为它依赖于来自systeminfo
  3. 的返回文本的格式
  4. 使用VER命令无疑是一种更好的方法
  5. 对于一个非常强大的方法,这与systeminfo / ver返回的文本格式无关,考虑在C#中编写一个小程序(Express Edition是免费的),查看System.Environment.OSVersion属性和为你设置一个错误级别,因为这将是字符串解析(因此不太可能中断)!

答案 2 :(得分:1)

我会使用ver命令而不是systeminfo。我的Windows 7机器报告:

Microsoft Windows [Version 6.1.7601]

以下批处理脚本代码段将定义包含主版本号的变量:

for /f "tokens=2 delims=[]" %%A in ('ver') do for /f "tokens=2 delims=. " %%B in ("%%A") do set "majorVersion=%%B"