如何从命令提示符或PowerShell获取Windows版本

时间:2017-03-14 06:09:05

标签: windows windows-10 windowsversion

Windows version.

但是有没有办法使用类似于图像中提到的命令行输出来获取确切的版本字符串?

附件是来自run的“winver”命令的输出。 PS:我正在寻找批处理或PowerShell命令。

有一些替代品可用于获取Windows版本,例如此PowerShell命令:

[System.Environment]::OSVersion

6 个答案:

答案 0 :(得分:13)

以下命令可以帮助您。如果您需要更多信息,只需输入 systeminfo

systeminfo | findstr /B /C:"OS Name" /C:"OS Version"

wmic os get Caption,CSDVersion /value

答案 1 :(得分:5)

我发现它在某处,PowerShell:

(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId

答案 2 :(得分:5)

ver command显示如下内容:

> ver

Microsoft Windows [Versión 10.0.17134.228]

但是在PowerShell(或Git Bash)中,您必须通过cmd命令对其进行调用:

> cmd /c ver

答案 3 :(得分:0)

使用系统信息,您只能获取具有该值的内部版本,然后去Google获取相应版本。

但是,一种简单的方法是在命令行上搜索注册表:

REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | findstr REG_SZ

答案 4 :(得分:0)

要添加到@Bonifacio的答案中:

REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | findstr ReleaseId

会更好,因为它仅返回ReleaseId值,然后您可以将其传递到文件。如果您要处理多个主机,则特别有用。

REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | findstr ReleaseId > any_path\%COMPUTERNAME%_OS_Version.txt

答案 5 :(得分:0)

reg查询方式建议全部输出一些垃圾。

REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | findstr ReleaseId
Output:
ReleaseId    REG_SZ    2009

使用带令牌的for循环将输出干净的信息。

for /f "tokens=3" %i in ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" ^| findstr ReleaseId') do echo %i
Output:
2009

tokens=3指的是原始输出中的第三个单词。

如果在bat文件中运行,则需要将%加倍。

您可以通过将echo %i替换为set build=%i

来将输出设置为变量。

还请记住转义^任何特殊字符。

最后查看HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion中具有所需值的字符串。您可能需要调整令牌计数。