ver 是什么
ver 是 CMD 的内置命令,只做一件事:打印当前操作系统的主版本号,输出形如 Microsoft Windows [版本 10.0.19045.2965]。它常被批处理用来做系统分支判断,但信息量很小:Windows 10 与 Windows 11 的版本号都是 10.0,靠构建号才能区分;要「功能更新代号(如 22H2)」「补丁号」这些细节,还得看 winver、systeminfo 或注册表。
基本信息
| 适用平台 | CMD 与批处理;PowerShell 中不存在该命令 |
|---|---|
| 语法 | ver |
| 输出 | 形如 Microsoft Windows [版本 10.0.19045.2965] |
| 权限要求 | 无,任何用户可执行 |
| 补充命令 | winver 弹窗显示图形版本信息;systeminfo 输出完整系统清单 |
典型使用场景
- 脚本分支:判断是否 Windows 10 以上,决定启用哪些命令与语法
- 快速确认:远程会话里先看一眼版本,避免用错版本专属参数
- 环境巡检:批量收集主机版本号,统计补丁与版本分布
- 排障前置:判断某功能是否受系统版本限制(如 WSL2、某些 WinRM 策略)
- 配合其他命令:与系统信息类命令搭配,补全硬件或补丁维度
常用示例
常用示例
ver # 最简:只看主版本号
winver # 弹窗显示版本与构建号
systeminfo | findstr /C:"OS 名称" /C:"OS 版本" # 输出中文系统信息
wmic os get caption,version,buildnumber # 结构化输出(WMIC 已弃用)
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v DisplayVersion # 取 22H2 之类的功能更新代号
REM 批处理里按版本分支
ver | find "10.0." >nul && echo 属于 Windows 10/11 系列版本号对照速查
| 版本号 | 对应系统 | 构建号示例 |
|---|---|---|
| 6.1 | Windows 7 / Server 2008 R2 | 7601 为 SP1 |
| 6.2 | Windows 8 / Server 2012 | 9200 |
| 6.3 | Windows 8.1 / Server 2012 R2 | 9600 |
| 10.0(早期构建) | Windows 10 / Server 2016-2022 | 19045 对应 Win10 22H2,17763 对应 Server 2019 |
| 10.0(新构建) | Windows 11 / Server 2025 | 22621 起为 Win11,26100 对应 Win11 24H2 |
Windows 11 的 ver 同样显示 10.0,微软用构建号区分:22000 及以上为 Windows 11。任何「用 ver 判断是不是 Win11」的脚本都是错的,必须比较构建号。
ver 的输出随系统语言变化:中文系统输出中文、英文系统输出英文,脚本直接匹配「版本」这类中文字符串换台机器就会失效,匹配数字(如 10.0.)更可靠。
版本号在合规与支持周期检查里同样常用:Windows 10 各版本与 Server 各代的支持截止时间不同,盘点时要把构建号与功能更新代号(22H2、23H2)一起记录,只写「10.0」无法判断是否仍在支持期。
PowerShell 与脚本分支的稳妥写法
PowerShell 与脚本分支的稳妥写法
$PSVersionTable.PSVersion # 这是 PowerShell 自己的版本,不是系统版本
[System.Environment]::OSVersion.Version # 取系统主版本与构建号
(Get-CimInstance Win32_OperatingSystem).Version # WMI 口径的版本号
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsBuildNumber别把 PowerShell 里的 $PSVersionTable 当成系统版本:它反映的是 PowerShell 引擎版本,与 Windows 版本无关;同理 ver 在 PowerShell 会话中不可用,需改用系统 API 或 CIM 查询。