Komut satırını kullanarak sistemimin Windows 10 olup olmadığını nasıl belirlerim? [çift]


32

Yükleyiciler oluşturmak için eski bir program olan InstallAnywhere ile çalışıyorum. Belirli bir dosyayı yalnızca Windows XP ve Windows Vista olması durumunda kurmak istiyorum.

InstallAnywhere sınırlamaları nedeniyle, bu mümkün değildir. Dosyayı yalnızca bir kurala dayalı olarak yüklendikten sonra silmeye karar verebilirim.

Bu kural dahilinde, üzerinde çalıştığım platformu kontrol edebilirim, bu da bana Windows XP, Windows Vista, Windows 7 vb. İçin kontrol etme imkanı veriyor, ancak Windows 10 için kontrol etme imkanı veriyor. Sistem XP veya Vista olmadığında eylem "," Bu işlemi XP veya Vista olmayan tüm platformlarda gerçekleştir "demeliyim.

Bununla birlikte, komut satırı komutlarını çalıştırabilir ve sonucu yakalayabilirim, işte sorum şu: bir Windows 10 sisteminde çalışıp çalışmadığımı belirlemek için kullanabileceğim bir komut var mı?


winvercmd veya Başlat ile yazıldığında Windows Hakkında iletişim kutusunu açacaktır. Işe yarar mı? Alternatif olarak - stackoverflow.com/questions/1792740/…
Tetsujin

Cevabınız için teşekkürler, ancak komut satırında cevap veren bir komut satırı komutu arıyorum, bir mesaj kutusu açıldığında bilgileri toplu olarak kullanamam.
Dominique

Cmd.exe sürümünü kontrol edin, en azından XP'den beri en kolay ve desteklenir. Bununla ilgili bir soru var.
KeyWeeUsr

2
google cmd sürümleri, her işletim sisteminin farklı sürüm numarası vardır, bunun için kontrol edebilirsiniz ve gereksiz uzun bir komut dosyasına veya başka bir programa ihtiyacınız yoktur - burada
KeyWeeUsr

5
Sadece yazın ver. Örneğin, Windows 7 sistemimde Windows 7'yi çalıştırdığımı söyleyen ( 6.1 numaralı sürümde ) "Microsoft Windows [Sürüm 6.1.7601]" alıyorum .
Andreas Rejbrand

Yanıtlar:


54

Windows 10 sistemde çalışıp çalışmadığımı belirleyen bir komut var mı?

Kullanabilirsiniz wmic.

Aşağıdaki komut Windows sürümünü döndürür.

wmic os get Caption | findstr /v Caption

Örnek çıktı:

F:\test>wmic os get Caption | findstr /v Caption
Microsoft Windows 7 Home Premium

Biraz daha fazla bilgi edinmek istiyorsanız, aşağıdaki toplu iş dosyasını (GetOS.cmd) kullanabilirsiniz;

  • İşletim sistemi sürümü
  • Servis Paketi Ana Sürüm
  • Mimari (64 veya 32 bit)
@echo off
setlocal
setlocal enabledelayedexpansion
set _os=
set _sp=
rem use findstr to strip blank lines from wmic output
rem get OS
for /f "usebackq skip=1 tokens=3" %%i in (`wmic os get caption ^| findstr /r /v "^$"`) do (
  set "_os=%%i"
  )
rem get Service Pack
for /f "usebackq skip=1 tokens=*" %%i in (`wmic os get ServicePackMajorVersion ^| findstr /r /v "^$"`) do (
  set "_sp=%%i"
  )
rem get Architecture
for /f "usebackq skip=1 tokens=*" %%i in (`wmic OS get OSArchitecture ^| findstr /r /v "^$"`) do (
  set "_bits=%%i"
  )
echo Operating System Version: %_os%
echo Service Pack Major Version: %_sp%
echo Architecture: %_bits%
endlocal

İşletim Sistemi Sürümü saklanır %_os, Servis Paketi Ana Sürümü saklanır %_sp%ve Mimari saklanır %_bits%.

Notlar:

  • Tamamen test edilmedi çünkü test edilecek tüm işletim sistemi ve Servis Paketi kombinasyonlarına sahip değilim.

  • forKomut OS'nin sadece 3 bölümünü (belirteç) olarak alır. Bu, masaüstü sürümleri için işe yarayacaktır (Server 2008'i diğer sürümlerden ayırmak istiyorsanız başka bir çözüm bulmanız gerekir).

  • %_osAşağıdaki değerlerden birine ayarlanır: Server, Vista, 7, 8, 8.1veya 10.

Örnek çıktı:

F:\test>GetOS
Operating System Version: 7
Service Pack Major Version: 1
Architecture: 64-bit

F:\test>

Daha fazla okuma


2
Bazı testlerden sonra aşağıdaki komutu kullanmaya karar verdim:wmic os get Caption | findstr /V Caption
Dominique

@DavidPostill Toplu iş dosyasını test ettim. Sanırım , pencerenin kapanmasından önce kullanıcıya çıktısını okuma şansı vermek için daha pauseönce buna ihtiyacı var endlocal. Bu senin için de geçerli mi?
Matthew

1
@Matthew Beklentinin başka bir sistemin toplu dosyayı çalıştırıp çıktılarını yakalayacağı (veya mevcut bir Komut istemi penceresinden manuel olarak çağrılacağı) olduğunu düşünüyorum.
TripeHound

@mathew duraklatma cmd isteminden çalışan gerekli değildir. Cevap, tüm senaryolara uymak yerine tekniği göstermektir.
DavidPostill

1
@mathew dosyayı kaydettiğiniz bir cmd istemi açın ve getos yazın
DavidPostill

35

Bu kadar uzun ve ver komutuna inanamıyorum

C:\>ver

Microsoft Windows [Version 10.0.10586]

C:\>

Yönlendirmelerde çalışır, böylece yapabilirsiniz

ver | find "Version 10."

Ancak normalde "bu ve gelecekteki tüm sürümler için" yazmalısınız, bu nedenle önceki sürümleri sıralamaktan daha iyi olursunuz.


Bilginize vergelmez değil PowerShell'de çalışır. Öyle CMDspesifik.
Keltari

3
@Keltari Ama iex "ver"yapar!
Ben N,

Çıktısı verbiraz yanıltıcı olabilir. Makine üzerinde oturuyorum şu anda geri döner Microsoft Windows [Version 6.1.7601]. Ancak Windows 7 değil, Windows 7 çalıştığından eminim.
Philipp

@Philipp Evet, Windows 7 ve 8 sırasıyla Vista, 6.1 ve 6.2 “gerçekten” yama sürümleridir; büyük sürüm yumru kesinlikle pazarlama. Windows 10'daki değişikliklerin büyük bir sürüm patlamasına neden olacak kadar önemli olup olmadığını bilmiyorum. (Hardline yazılım mühendisliği perspektifinden bakıldığında, herhangi bir yazılımın ana sürümünün yalnızca geriye dönük uyumluluk kırıldığını belirtmek için çarpılması gerekir; büyük büyük sürümlerin kötü olduğu
sonucuna varılır

1
@Philipp - sürüm numarasından pazarlama adlarına kadar bir harita bulmak kolaydır, örneğin, burada
davidbak

18

sistem bilgisi

İşletim sistemi, Sistem tipi (32/64 bit) ve çok uzun süren birçok yararlı bilgi alıyor:

görüntü tanımını buraya girin


Evet, ben de tavsiye ederim systeminfo. Yukarıdaki resimde görebileceğiniz gibi, işletim sisteminizi ve ihtiyaç duyabileceğiniz diğer bilgileri görüntüleyecektir.
Matthew

3
Hızlı cevap için teşekkürler. systeminfoGerçekten de aradığım bilgiyi verir (dolayısıyla artı), ancak oldukça zaman alıyor (bilgisayarımda 15 saniyeden fazla zaman alıyor). Bu nedenle bir wmicsonraki cevapta bulunan çözümü seçtim .
Dominique

1
İnsanların üzerinde çalıştıkları işletim sistemi / sürümü bulmaları gerektiğinde kaçmalarını istediğim şey bu:cmd /c systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
Andrew Savinykh

1
systeminfo'nun çıktısı dile bağlı, bu nedenle daha büyük ölçekte çalıştırılmasını istiyorsanız çok işe yaramaz
Stephan

1

InstallAnywhere ile ilgili herhangi bir deneyimim yok, ancak bir komut satırı kullanarak hangi işletim sisteminin yüklü olduğunu görmek için iki seçenek var.

  1. Cmd kullanarak

    systeminfo.exe
    

    Komutu kullanarak, systeminfo.exealanın altındaki sonucu görebilirsiniz OS Name. Bu size gerekenden daha fazla bilgi verebilir.

    Bu komutla ilgili daha fazla bilgi Microsoft TechNet'te bulunabilir .

  2. Güç kalkanı

    Alternatif olarak, istediğiniz tam bilgiyi döndürecek aşağıdaki Powershell betiğini kullanabilirsiniz.

    Get-CimInstance Win32_OperatingSystem | Select-Object  Caption | ForEach{ $_.Caption }
    
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.