【发布时间】:2019-02-10 17:50:22
【问题描述】:
在编写脚本时,有必要确定计算机正在运行的 Windows 版本。唯一的问题是 Windows-10 和 Server-2016 具有相同的版本号。
这是当前的代码。在这种状态下,Windows10 和 Server2016 被标识为相同的编号 wmic os get 输出 10.0.18329(不起作用)。
for /f "tokens=4-5 delims=. " %%i in ('ver') do set Operating=%%i.%%j
if "%Operating%" == "6.3" set Operating=Windows81
if "%Operating%" == "6.2" set Operating=Windows8
if "%Operating%" == "10.0" set Operating=Windows10
if "%Operating%" == "10.0" set Operating=Server2016
echo Is %Operating% your operating system?
我想做的是 parse
wmic os get name来获取操作系统名称。这显示了一些挑战,因为输出是多行并且在操作系统名称('Windows 10')之前和之后有任意数量的字符。
这是 wmic os get name 在 windows 10 pro 上的输出:
Name
Microsoft Windows 10 Pro|C:\WINDOWS|\Device\Harddisk1\Partition3
这是wmic os get name 在 Server 2016 上的输出:
Name
Microsoft Windows Server 2016 Standard|C:\Windows|\Device\Harddisk0\Partition2
【问题讨论】:
-
是什么阻止您像使用
VER命令一样使用FOR /F命令捕获输出?
标签: windows batch-file scripting wmic