2015-12-16 6 views
5

Ich möchte eine Batch-Datei, die folgende Operation machen: prüft, ob das laufende Betriebssystem Windows ist. Wenn es so ist, sollte es drucken Hello. Im win 10 sonst sollte andere Nachricht drucken. Wie kann ich dies tun, wenn Bedingung?Batch-Datei: Überprüfen, ob OS ist Windows 10

Pseudocode:

if OS == Win10 then 
    echo Hello im win 10 
else 
    echo I am another os 

Antwort

11
setlocal 
for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j 
if "%version%" == "6.3" echo Windows 8.1 
if "%version%" == "6.2" echo Windows 8. 
if "%version%" == "6.1" echo Windows 7. 
if "%version%" == "6.0" echo Windows Vista. 
if "%version%" == "10.0" echo Windows 10. 
echo %version% 
rem etc etc 
endlocal 
+0

Danke. Dies ist genau das, was ich brauchte –

+0

Diese Methode funktioniert nicht für Windows XP, weil "ver" Ausgaben 'Microsoft Windows XP [Version 5.1.2600]' und daher '[Version.5' ist der Variablen' VERSION' zugewiesen. Es funktioniert jedoch nur für die Überprüfung, ob das Betriebssystem Windows 10 ist, wie von [Martin Rezyne] (http://stackoverflow.com/users/2357522/martin-rezyne) gefragt. – Mofi

+1

@Mofi - unabhängig davon, der Wert von% VERSION% ist nicht "10.0" und so kann es verwendet werden, um zu überprüfen, ob Sie Windows 10 ausführen oder nicht. Es wird nicht mit der tatsächlichen Version erhalten, aber das ist nicht Was fragt die Frage? – SomethingDark

4

, wenn Sie es möchten etwas ausführlicher:

for /f "tokens=2 delims=," %%i in ('wmic os get caption^,version /format:csv') do set os=%%i 
echo Hello, I am %os% 

oder nur Ihre Anforderungen erfüllen:

for /f "tokens=2 delims=," %%i in ('wmic os get caption^,version /format:csv') do set os=%%i 
echo %os%|find " 10 ">nul &&echo Hello I'm Windows 10||echo I am another os 

(die ,version sicher , deine gewünschte str Ing ist nicht der letzte Token, der diese hässliche wmic Zeilenendung enthält)

+0

Diese Methode funktioniert auch für Windows XP Professional, das jetzt nicht mehr von Microsoft unterstützt wird. Aber es ist langsam im Vergleich zur Ausgabe des Befehls "ver", da "wmic" immer mehr als 1 Sekunde benötigt. – Mofi

Verwandte Themen