Um verschiedene Windows-Versionen beispielsweise innerhalb eines Loginscripts unterscheiden zu können, kann man sich des Befehls "ver" bedienen. Da es sich um einen Konsolenbefehl handelt, muss seine Ausgabe allerdings geparst werden.
Eine Erweiterung des Verfahrens aus dem Logonscript-Artikel sieht so aus:
@echo off rem Die folgenden Funktionen dienen dazu, verschiedene rem Windows-Versionen zu unterscheiden rem Alle Nicht-NTs: if not "%os%"=="Windows_NT" goto W9x rem Windows NT4: ver|find "NT">nul if not errorlevel 1 goto NT rem Windows 2000: ver|find "2000">nul if not errorlevel 1 goto W2000 rem Windows XP: ver|find "XP">nul if not errorlevel 1 goto WXP rem Windows 2003: ver|find "5.2.">nul if not errorlevel 1 goto W2003 :W9x echo Hier ist Windows 9x/Me goto ende :NT echo Hier ist Windows NT4 goto ende :W2000 echo Hier ist Windows 2000 goto ende :WXP echo Hier ist Windows XP goto ende :W2003 echo Hier ist Windows 2003 goto ende :ende
Eine etwas elegantere Variante davon hat mir Michael Boettjer (news at Nachname dot org) geschickt:
@echo off set version= for /f "tokens=1,2,3* delims= " %%i in ('ver') do set version=%%i %%j %%k if "%version%" == "Microsoft Windows [Version" (goto doit;) if "%version%" == "Microsoft Windows 2000" (goto doit;) if "%version%" == "Windows NT Version" (goto doit;) if "%version%" == "Microsoft Windows XP" (goto doit;) echo %version% echo Das Betriebssystem ist nicht Windows NT, Windows 2000, XP oder 2003. pause exit 0 :doit ....
http://faq-o-matic.net/?p=623