VER

Display the current operating system version.

Syntax
      VER

A very simple method of version checking is to pipe a version string into FIND, however there is a possibility that something which is a unique string today might match a minor version released in the future e.g. the following would also match 7.6.1

ver | find "6.1" > nul
if %ERRORLEVEL% == 0 goto ver_2008R2

Batch file to find the current operating system version:

@Echo off
For /f "tokens=4,5,6 delims=[]. " %%G in ('ver') Do (set _major=%%G& set _minor=%%H& set _build=%%I) 

Echo Major version: [%_major%]
Echo Minor Version: [%_minor%]
Echo Build: [%_build%]

goto sub%_major%%_minor%
 
:sub51
:sub52
Echo Windows XP or Windows 2003
goto next
 
:sub60
Echo Windows Vista or Windows 2008
goto next
 
:sub61
Echo Windows 7 or Windows 2008 R2
goto next
 
:sub62
Echo Windows 8 or Windows Server 2012
goto next
 
:sub63
Echo Windows 8.1 or Windows Server 2012
goto next
 
:sub100
:sub101
Echo Windows 10
 
:next
Echo Architecture: [%PROCESSOR_ARCHITECTURE%]
pause

List of Windows Version numbers

Windows 1.0 1.04
Windows 2.0 2.11
Windows 3.0 3
Windows 95 4.0.950
Windows XP 5.1.2600
Windows XP Professional x64 Edition 5.2.3790
Windows Home Server 5.2.3790
Windows Server 2003 5.2.3790
Windows Server 2003, Service Pack 1 5.2.3790.1180
Windows Server 2003 5.2.3790.1218
Windows Vista, RTM (Release to Manufacturing) 6.0.6000.16386
Windows Vista 6.0.6000 / Windows Server 2008 6.0.6001
Windows Vista, Service Pack 2 / Server 2008 Sp2 6.0.6002
Windows 7, RTM (Release to Manufacturing) 6.1.7600.16385
Windows 7 6.1.7600
Windows 7, Service Pack 1 6.1.7601
Windows Server 2008 R2, RTM (Release to Manufacturing) 6.1.7600.16385
Windows 8, RTM (Release to Manufacturing) 6.2.9200.16384
Windows 8 6.2.9200
Windows Server 2012 6.2.9200
Windows 8.1 6.3.9600.16384.130821-1623
Windows Server 2012 R2 6.3.9600
Windows 10 10.0.10240
See also Wikipedia list of Windows versions

Service Pack Version

This Batch script will return the Service Pack level.

32 bit or 64 bit process detection

The environment variable PROCESSOR_ARCHITECTURE holds the following possible values:

64-bit process: AMD64 or IA64
32-bit process or WOW64 (32bit Program on 64 bit OS): x86

If we are running WOW64 then PROCESSOR_ARCHITEW6432 =AMD64

IF PROCESSOR_ARCHITECTURE == x86 AND
  PROCESSOR_ARCHITEW6432 NOT DEFINED THEN
  // OS is 32bit
ELSE
  // OS is 64bit
END IF

via David Wang @MSFT

Errorlevels

If the version was successfully displayed %ERRORLEVEL% = 0
If a bad parameter is given %ERRORLEVEL% = 1
VER /? will not reset the ERRORLEVEL, this is a bug.

VER is an internal command.

“Always be a first-rate version of yourself, instead of a second-rate version of somebody else” ~ Judy Garland

Related:

Q190899 - How to Determine the OS Type in a Logon Script
Gettype.exe - Resource Kit
Sigcheck - Check a file version
SystemInfo - Return OS, Service pack, BIOS, Memory etc
WINVER.exe - Opens the GUI Version dialogue box (Help, About)
FILEVER - DLL version information (Resource Kit, XP Support tool)
OS version changes in Windows 8.1 and Windows Server 2012 R2
Wikipedia - Timeline of Microsoft Windows
Powershell equivalent: Get-Host
Equivalent bash command (Linux): uname -r - Print system information


© Copyright SS64.com 1999-2016
Some rights reserved