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
....
Verwandte Beiträge:
- Übersichtlichere Schreibweise bei if-Anweisungen
Oft steht in einem Batch bei nach einer Bedingung, bei deren Zutreffen mehrere Zeilen Code ausgeführt werden müssen, etwas in... - Wie führe ich eine Aktion nur aus, wenn der Ziel-Host erreichbar ist?
Oft soll eine bestimmte Aktion nur ausgeführt werden, wenn der Ziel-Host auch erreichbar ist. Das ist dann problematisch, wenn es... - Schema-Versionen vergleichen
In dem kürzlich hier erschienenen Artikel "Schema-Erweiterungen auffinden" habe ich einen manuellen Weg beschrieben, mit dem sich Erweiterungen im Schema... - Exchange 2007: Installation auf Windows Server 2008 vorbereiten
Um Exchange Server 2007 auf Windows Server 2008 zu installieren, ist ein Installationsmedium mit (mindestens) dem integrierten Service Pack... - Bestimmte Verknüpfungen im Benutzerprofil löschen
Nach einer Dateiserver-Migration oder nach einem Anwendungs-Update sollen oft veraltete Verknüpfungen im Startmenü oder auf dem Desktop von Benutzern entfernt...


9. Juli 2004, 15:25 Uhr
http://faq-o-matic.net/?p=623


