【问题标题】:Get the major version number of OS using command prompt使用命令提示符获取操作系统的主要版本号
【发布时间】:2014-12-26 14:47:09
【问题描述】:

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

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

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

但我不确定如何获得主要版本号(版本的第一位)

如何获取主版本号或

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

【问题讨论】:

    标签: windows command-line


    【解决方案1】:

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

    Microsoft Windows [Version 6.1.7601]
    

    以下批处理脚本 sn-p 将定义一个包含主版本号的变量:

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

    【讨论】:

    • 如果我想要前 3 位数怎么办
    【解决方案2】:

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

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

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

    注意:

    1. 我在第二个字符串的开头放置了一个空格,以尝试确保它与“OS 版本”行上可能填充到 systeminfo 输出中的任何其他内容不匹配
    2. 这真的很脆弱,因为它依赖于 systeminfo 返回文本的格式
    3. 使用 VER 命令无疑有更好的方法来做到这一点
    4. 要获得一种独立于 systeminfo/ver 返回的文本格式的真正可靠的方法,请考虑用 C#(Express 版免费)编写一个小程序,查看 System.Environment.OSVersion 属性并设置一个为您提供错误级别,因为这将是无字符串解析的(因此不太可能中断)!

    【讨论】:

      【解决方案3】:

      这是一个使用 ver.exe 的 sn-p :

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多