但是有没有办法使用类似于图像中提到的命令行输出来获取确切的版本字符串?
附件是来自run的“winver”命令的输出。 PS:我正在寻找批处理或PowerShell命令。
有一些替代品可用于获取Windows版本,例如此PowerShell命令:
[System.Environment]::OSVersion
答案 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
中具有所需值的字符串。您可能需要调整令牌计数。