To pytanie ma już odpowiedź tutaj:
- Jak uzyskać wersję systemu Windows jako zmienną? 1 odpowiedź
- Którą wersję systemu Windows mam? [duplikat] 9 odpowiedzi
Pracuję z InstallAnywhere, starym programem do tworzenia instalatorów. Chciałbym zainstalować konkretny plik, tylko w przypadku Windows XP i Windows Vista.
Ze względu na ograniczenia InstallAnywhere nie jest to możliwe. Mogę zdecydować o usunięciu pliku, który został już zainstalowany, na podstawie reguły.
W ramach tej reguły mogę sprawdzić platformę, na której działam, co daje mi możliwość sprawdzenia w systemie Windows XP, Windows Vista, Windows 7 itd., Ale nie w przypadku systemu Windows 10. Nie mogę powiedzieć „Wykonaj to akcja, gdy system nie jest XP lub Vista ”, więc muszę powiedzieć„ Wykonaj tę akcję na wszystkich platformach, które nie są XP ani Vista ”.
Mogę jednak uruchamiać polecenia wiersza polecenia i wychwytywać wynik, więc oto moje pytanie: czy istnieje polecenie, którego mogę użyć do ustalenia, czy pracuję w systemie Windows 10?
źródło
winver
pojawi się okno dialogowe Windows - informacje, jeśli zostanie wpisane w cmd lub Start. Czy to zadziała? Alternatywnie - stackoverflow.com/questions/1792740/...ver
. Na przykład w moim systemie Windows 7 pojawia się „Microsoft Windows [wersja 6.1.7601]”, który mówi mi, że korzystam z systemu Windows 7 (który ma wersję 6.1 ).Odpowiedzi:
Czy istnieje polecenie określające, czy pracuję w systemie Windows 10?
Możesz użyć
wmic
.Następujące polecenie zwróci wersję systemu Windows.
Przykładowe dane wyjściowe:
Jeśli chcesz trochę więcej informacji, możesz użyć następującego pliku wsadowego (GetOS.cmd), który pobierze i wyświetli:
Wersja systemu operacyjnego jest przechowywana w
%_os
, Service Pack Wersja główna jest przechowywana w%_sp%
, a architektura jest przechowywana w%_bits%
.Uwagi:
Nie do końca przetestowane, ponieważ nie mam wszystkich kombinacji systemu operacyjnego i dodatku Service Pack do przetestowania.
for
Polecenie pobiera tylko w 3. części (Token) systemu operacyjnego. Działa to w przypadku wersji na komputery stacjonarne (jeśli chcesz odróżnić Server 2008 od innych wersji, musisz znaleźć inne rozwiązanie).%_os
zostanie ustawiony na jedną z następujących wartości:Server
,Vista
,7
,8
,8.1
lub10
.Przykładowe dane wyjściowe:
Dalsza lektura
źródło
wmic os get Caption | findstr /V Caption
pause
przed,endlocal
aby dać użytkownikowi szansę odczytania wyniku przed zamknięciem okna. Czy to też dotyczy Ciebie?Nie mogę w to uwierzyć tak długo i nie mam komendy ver
Działa w przekierowaniach, więc możesz to zrobić
Ale zwykle powinieneś pisać „dla tej i wszystkich przyszłych wersji”, więc lepiej wyliczyć poprzednie.
źródło
ver
ma nie pracować w PowerShell. To jestCMD
specyficzne.iex "ver"
does!ver
mogą być nieco mylące. Na maszynie, w której teraz siedzę, wracaMicrosoft Windows [Version 6.1.7601]
. Ale jestem pewien, że działa pod Windows 7, a nie Windows 6.pobiera wiele przydatnych informacji, takich jak system operacyjny, typ systemu (32/64 bit) i tak długo:
źródło
systeminfo
również. Jak widać na powyższym obrazku, wyświetli on system operacyjny oraz inne informacje, których możesz potrzebować.systeminfo
faktycznie zawiera informacje, których szukam (stąd opinia), ale zajmuje to trochę czasu (na moim komputerze zajmuje to ponad 15 sekund). Dlatego wybrałemwmic
rozwiązanie, które znalazłem w następnej odpowiedzi.cmd /c systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
Nie mam doświadczenia z InstallAnywhere, ale istnieją dwie opcje, aby zobaczyć, jaki system operacyjny jest zainstalowany za pomocą wiersza polecenia.
Korzystanie z Cmd
Za pomocą polecenia
systeminfo.exe
możesz zobaczyć wynik pod polemOS Name
. Może to dać więcej informacji, niż potrzebujesz.Więcej informacji na temat tego polecenia można znaleźć w witrynie Microsoft TechNet .
PowerShell
Alternatywnie możesz użyć następującego skryptu Powershell, który zwróci dokładne informacje, których potrzebujesz.
źródło