windows - 批量获取准确的 Windows 版本
问题描述
我需要在批处理文件中获取我的操作系统的确切 Windows 版本,并且我想将它存储为一个变量。我需要像 14393.3144 这样的完整版本(如果winver
使用则显示),因为我想检查是否成功安装了更新。我已经尝试过使用wmic os get buildnumber
,但它只返回 14393。除此之外,我还考虑阅读 Windows 更新日志,但使用 powershell 命令创建它只Get-WindowsUpdateLog
需要很多时间并且不够可靠。
解决方案
这是一个使用wmic检索完整版本的示例:
@Set "OSVer="
@For /F EOL^=V %%A In ('"%__AppDir__%wbem\WMIC.exe" OS Get Version 2^>NUL')Do @For %%B In (%%A)Do @Set "OSVer=%%B"
@Set OSVer 2>NUL&&Pause
在测试机器上,这刚刚返回10.0.18362
您当然可以使用内部
Ver
命令,(从技术上讲,它返回的版本cmd.exe
,而不是操作系统):
@Set "OSVer="
@For /F Delims^=] %%A In ('Ver')Do @For %%B In (%%A)Do @Set "OSVer=%%B"
@Set OSVer 2>NUL&&Pause
在测试机器上,这刚刚返回10.0.18362.295
您当然也可以尝试解析注册表以获取信息:
@Set "RKey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
@For /F Tokens^=2* %%A In ('^""%__AppDir__%reg.exe" Query "%RKey%" /V CurrentBuildNumber^" 2^>NUL')Do @Set "NUM=%%B"
@For /F Tokens^=2* %%A In ('^""%__AppDir__%reg.exe" Query "%RKey%" /V UBR^" 2^>NUL')Do @Set /A UBR=%%B 2>NUL
@Echo(%NUM%.%UBR%&Pause
在测试机器上,这刚刚返回18362.295
或者,看看这个超级用户问题和答案。
推荐阅读
- wso2 - 即使主机名已更改,回调 URL 也会更改为 localhost
- ruby-on-rails - 使用主动存储镜像服务直接上传
- ruby - 这个值变量是从哪里来的?
- r - 在 hchart 内循环:需要从存储在向量中的日期获取 hchart 内的多个绘图线
- php - 如何在父主题上覆盖/自定义我的 woo-commerce 子主题?
- c++ - Project2.exe 中 0x0F792B99 (opencv_imgproc249d.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0xCDCDCDCD
- python - matplotlib 可以在同一个栏中生成具有不同图例的条形图吗?
- javascript - Javascript字符串属性和for的?
- android - 如何创建这个数据库?
- php - 关键 php_buildpack 的 Keepalive 设置