繁体   English   中英

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

[英]How to get Windows version from command prompt or from PowerShell

视窗版。

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

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

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

[System.Environment]::OSVersion

以下命令将帮助您解决这个问题。 如果您需要更多信息,只需输入systeminfo

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

wmic os get Caption,CSDVersion /value

ver命令显示如下内容:

> ver

Microsoft Windows [Versión 10.0.17134.228]

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

> cmd /c ver

我在某处找到了它,PowerShell:

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

添加到@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

使用系统信息,您只能获取具有该值的构建并转到 Google 以获取相应版本。

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

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

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以获取具有所需值的字符串。 您可能需要调整令牌计数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM