2015-12-16 33 views
5

Chcę utworzyć plik wsadowy, który wykona następującą operację: sprawdza, czy działający system operacyjny to okna. Jeśli jest, to powinno wydrukować Hello. Im win 10 w przeciwnym razie powinien wydrukować inną wiadomość. Jak mogę to zrobić, jeśli stan?Plik wsadowy: Sprawdź, czy system operacyjny to Windows 10

Pseudokod:

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

Odpowiedz

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

Dziękuję. Dokładnie tego potrzebowałem –

+0

Ta metoda nie działa dla Windows XP, ponieważ 'ver' wypisuje' Microsoft Windows XP [Wersja 5.1.2600] 'i dlatego' [Wersja.5' jest przypisana do zmiennej 'VERSION'. Działa to jednak tylko w celu sprawdzenia, czy system operacyjny to Windows 10, o co poprosił [Martin Rezyne] (http://stackoverflow.com/users/2357522/martin-rezyne). – Mofi

+1

@Mofi - niezależnie, wartość% VERSION% nie będzie miała wartości "10.0", więc można jej użyć do sprawdzenia, czy używasz systemu Windows 10. Nie pomoże to w uzyskaniu aktualnej wersji, ale to nie o co pyta. – SomethingDark

4

jeśli chcesz nieco bardziej szczegółowy:

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

lub po prostu spełnić swoje wymagania:

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 

(the ,version gwarantuje , twój pożądany str ing nie jest ostatnim tokenem, który zawiera to brzydkie zakończenie linii wmic)

+0

Ta metoda działa nawet w systemie Windows XP Professional, który nie jest już obsługiwany przez firmę Microsoft. Ale jest powolny w porównaniu do użycia polecenia "ver", ponieważ 'wmic' potrzebuje na zawsze więcej niż 1 sekundę. – Mofi