Bagaimana cara saya menentukan apakah sistem saya adalah Windows 10 menggunakan baris perintah? [duplikat]

32

Saya bekerja dengan InstallAnywhere, program lama untuk membuat installer. Saya ingin menginstal file tertentu, hanya untuk Windows XP dan Windows Vista.

Karena keterbatasan InstallAnywhere, ini tidak mungkin. Saya hanya dapat memutuskan untuk menghapus file setelah diinstal, berdasarkan aturan.

Dalam aturan itu, saya dapat memeriksa platform tempat saya menjalankan, yang memberi saya kemungkinan untuk memeriksa Windows XP, Windows Vista, Windows 7, dll. Tetapi tidak untuk Windows 10. Saya tidak bisa mengatakan "Lakukan ini aksi ketika sistem bukan XP atau Vista ", jadi saya harus mengatakan" Lakukan tindakan ini pada semua platform tersebut, yang bukan XP atau Vista ".

Namun, saya dapat meluncurkan perintah baris perintah dan menangkap hasilnya, jadi inilah pertanyaan saya: apakah ada perintah yang dapat saya gunakan untuk menentukan apakah saya sedang bekerja pada sistem Windows 10?

Dominique
sumber
winverakan memunculkan dialog About Windows jika mengetikkan cmd atau Start. Apakah itu akan berhasil? Atau - stackoverflow.com/questions/1792740/…
Tetsujin
Terima kasih atas jawabannya, tetapi saya sedang mencari perintah baris perintah yang memberikan jawaban di baris perintah, saya tidak bisa menggunakan informasi dengan cara tipe batch ketika kotak pesan muncul.
Dominique
Periksa versi cmd.exe, ini yang termudah dan didukung setidaknya sejak XP. Ada pertanyaan tentang itu.
KeyWeeUsr
2
google cmd versi, masing-masing os memiliki nomor versi yang berbeda, Anda dapat memeriksanya dan Anda tidak memerlukan skrip panjang yang tidak perlu atau program lain - di sini
KeyWeeUsr
5
Cukup ketik ver. Misalnya, pada sistem Windows 7 saya mendapatkan "Microsoft Windows [Versi 6.1.7601]" yang memberi tahu saya bahwa saya menjalankan Windows 7 (yang memiliki nomor versi 6.1 ).
Andreas Rejbrand

Jawaban:

54

Apakah ada perintah untuk menentukan apakah saya sedang bekerja pada sistem Windows 10?

Anda bisa menggunakannya wmic.

Perintah berikut akan mengembalikan versi Windows.

wmic os get Caption | findstr /v Caption

Contoh output:

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

Jika Anda ingin sedikit informasi lebih lanjut, Anda dapat menggunakan file batch berikut (GetOS.cmd), yang akan mengambil dan menampilkan:

  • Versi Sistem Operasi
  • Paket Layanan Versi Utama
  • Arsitektur (64 atau 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

Versi OS disimpan %_os, Versi Utama Paket Layanan disimpan %_sp%, dan Arsitektur disimpan %_bits%.

Catatan:

  • Tidak sepenuhnya diuji karena saya tidak memiliki semua kombinasi OS dan Paket Layanan untuk mengujinya.

  • The forperintah mengambil hanya bagian 3 (token) dari OS. Ini akan berfungsi untuk versi desktop (jika Anda ingin membedakan Server 2008 dari versi lain, Anda perlu mencari solusi lain).

  • %_osakan ditetapkan ke salah satu dari nilai berikut: Server, Vista, 7, 8, 8.1atau 10.

Contoh output:

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

F:\test>

Bacaan lebih lanjut

DavidPostill
sumber
2
Setelah beberapa pengujian, saya telah memutuskan untuk menggunakan perintah berikut:wmic os get Caption | findstr /V Caption
Dominique
@ DavidPostill Saya telah menguji file batch. Saya pikir perlu pausesebelum endlocaluntuk memberi pengguna kesempatan untuk membaca output sebelum jendela ditutup. Apakah itu mengikuti untuk Anda juga?
Matius
1
@ Matius Saya pikir harapannya adalah bahwa beberapa sistem lain akan menjalankan file batch dan menangkap outputnya (atau akan dipanggil secara manual dari jendela Command prompt yang ada).
TripeHound
Jeda @mathew tidak perlu dijalankan dari cmd prompt. Jawabannya adalah untuk menunjukkan teknik daripada cocok untuk semua skenario.
DavidPostill
1
@mathew buka prompt cmd tempat Anda menyimpan file dan ketik getos
DavidPostill
35

Saya tidak percaya selama ini dan tidak ada perintah ver

C:\>ver

Microsoft Windows [Version 10.0.10586]

C:\>

Ini berfungsi dalam pengalihan sehingga Anda bisa melakukannya

ver | find "Version 10."

Tetapi Anda biasanya harus menulis "untuk ini dan semua versi yang akan datang" sehingga Anda lebih baik menghitung melalui yang sebelumnya.

Joshua
sumber
FYI vertidak tidak bekerja di PowerShell. Ini CMDspesifik.
Keltari
3
@Keltari Tapi iex "ver"ya!
Ben N
Output dari verbisa agak menyesatkan. Pada mesin saya duduk sekarang ini kembali Microsoft Windows [Version 6.1.7601]. Tapi saya cukup yakin ini menjalankan Windows 7, bukan Windows 6.
Philipp
@ Pilip Ya, Windows 7 dan 8 masing-masing "benar-benar" merilis Vista, 6.1 dan 6.2 masing-masing; benjolan versi utama adalah pemasaran ketat. Saya tidak tahu apakah perubahan pada Windows 10 cukup signifikan untuk menjamin versi besar. (Dari sudut pandang rekayasa perangkat lunak garis keras, versi utama dari setiap perangkat lunak hanya boleh ditabrak untuk menunjukkan istirahat kompatibilitas mundur; ini mengikuti bahwa versi besar besar buruk . Sayangnya, departemen pemasaran menyukai jumlah besar.)
zwol
1
@ Pilhipp - mudah untuk menemukan peta dari nomor versi ke nama pemasaran, misalnya, di sini
davidbak
18

sistem Informasi

mendapat banyak info berguna seperti Sistem operasi, Jenis sistem (32/64 bit) dan begitu lama:

masukkan deskripsi gambar di sini

duDE
sumber
Ya, saya akan merekomendasikan systeminfojuga. Seperti yang dapat Anda lihat dari gambar di atas, ini akan menampilkan sistem operasi Anda serta informasi lain yang Anda butuhkan.
Matius
3
Terima kasih atas balasan cepatnya. systeminfomemang memberikan informasi yang saya cari (maka upvote), tetapi butuh beberapa waktu (pada PC saya butuh lebih dari 15 detik). Karena itu saya telah memilih wmicsolusinya, ditemukan pada jawaban berikutnya.
Dominique
1
Inilah yang saya minta orang untuk menjalankan ketika saya perlu mencari tahu os / versi yang mereka jalankan:cmd /c systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
Andrew Savinykh
1
output systeminfo tergantung pada bahasa, jadi sangat tidak berguna jika Anda ingin menjalankannya dalam skala yang lebih besar
Stephan
1

Saya tidak punya pengalaman dengan InstallAnywhere tetapi ada dua opsi untuk melihat OS apa yang diinstal menggunakan baris perintah.

  1. Menggunakan Cmd

    systeminfo.exe
    

    Dengan menggunakan perintah systeminfo.exe, Anda dapat melihat hasil di bawah bidang OS Name. Ini mungkin memberi Anda lebih banyak informasi daripada yang Anda butuhkan.

    Informasi lebih lanjut tentang perintah ini dapat ditemukan di Microsoft TechNet .

  2. Powershell

    Atau Anda dapat menggunakan skrip Powershell berikut yang akan mengembalikan informasi persis yang Anda inginkan.

    Get-CimInstance Win32_OperatingSystem | Select-Object  Caption | ForEach{ $_.Caption }
    
Tim Mahood
sumber