如何通过代码获取cmd命令winver返回的Windows系统版本号(如20H2)
实现获取Windows显示版本号(即winver返回的20H2类版本标识)的方案
实现原理
winver展示的如20H2、22H2这类版本标识为Windows系统的显示版本,存放在注册表路径
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion下的DisplayVersion键值中,1903及之后的Windows版本均支持读取该键值获取对应标识,1903之前的旧版本可读取同路径下的ReleaseId键值作为替代。
各语言实现示例
1. Python
import winreg def get_win_display_version(): try: key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Microsoft\Windows NT\CurrentVersion") version, _ = winreg.QueryValueEx(key, "DisplayVersion") winreg.CloseKey(key) return version except Exception: # 适配1903之前的旧版本 key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Microsoft\Windows NT\CurrentVersion") version, _ = winreg.QueryValueEx(key, "ReleaseId") winreg.CloseKey(key) return version print(get_win_display_version())
2. C#
using Microsoft.Win32; public static string GetWindowsDisplayVersion() { try { using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion")) { if (key != null) { object value = key.GetValue("DisplayVersion"); if (value != null) { return value.ToString(); } // 适配旧版本 value = key.GetValue("ReleaseId"); return value?.ToString() ?? "Unknown"; } } } catch { // 可自行补充异常处理逻辑 } return "Unknown"; }
3. 命令行直接调用
- CMD命令:
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v DisplayVersion - PowerShell命令:
(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").DisplayVersion
内容的提问来源于stack exchange,提问作者Lakk
相关产品推荐
相关产品推荐

