명령 줄을 사용하여 시스템이 Windows 10인지 어떻게 확인합니까? [복제]


32

설치 프로그램을 만드는 오래된 프로그램 인 InstallAnywhere로 작업하고 있습니다. Windows XP 및 Windows Vista의 경우에만 특정 파일을 설치하고 싶습니다.

InstallAnywhere 제한 사항으로 인해 불가능합니다. 규칙에 따라 이미 설치된 파일 만 삭제할 수 있습니다.

이 규칙 내에서 실행중인 플랫폼을 확인할 수 있으므로 Windows XP, Windows Vista, Windows 7 등은 확인할 수 있지만 Windows 10에서는 확인할 수 없습니다. "이 작업을 수행 할 수 없습니다. "시스템이 XP 또는 Vista가 아닌 경우 작업"을 수행해야하므로 "XP 또는 Vista가 아닌 모든 플랫폼에서이 작업을 수행하십시오"라고 말해야합니다.

그러나 명령 줄 명령을 실행하고 결과를 포착 할 수 있으므로 여기에 내 질문이 있습니다 .Windows 10 시스템에서 작업하고 있는지 확인하는 데 사용할 수있는 명령이 있습니까?


winvercmd 또는 Start를 입력하면 Windows 정보 대화 상자가 나타납니다. 작동할까요? 또는 – stackoverflow.com/questions/1792740/…
Tetsujin

답장을 보내 주셔서 감사하지만 명령 줄에 답변을 제공하는 명령 줄 명령을 찾고 있는데 메시지 상자가 나타나면 배치 유형으로 정보를 사용할 수 없습니다.
Dominique

cmd.exe 버전을 확인하십시오. XP 이후로는 가장 쉽고 지원됩니다. 그것에 대해 질문이 있습니다.
KeyWeeUsr

2
Google cmd 버전마다 OS마다 버전 번호가 다르므로 확인할 수 있으며 불필요한 긴 스크립트 나 다른 프로그램이 필요하지 않습니다. 여기
KeyWeeUsr

5
그냥 입력하십시오 ver. 예를 들어, Windows 7 시스템에서 "Microsoft Windows [버전 6.1.7601]"가 표시되어 Windows 7 ( 버전 번호 6.1 )을 실행하고 있음을 알려줍니다 .
Andreas Rejbrand

답변:


54

Windows 10 시스템에서 작업 중인지 확인하는 명령이 있습니까?

사용할 수 있습니다 wmic.

다음 명령은 Windows 버전을 반환합니다.

wmic os get Caption | findstr /v Caption

출력 예 :

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

좀 더 자세한 정보가 필요하면 다음 배치 파일 (GetOS.cmd)을 사용하면 검색하고 표시 할 수 있습니다.

  • 운영 체제 버전
  • 서비스 팩 메이저 버전
  • 아키텍처 (64 또는 32 비트)
@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

OS 버전은에 저장되고 %_os서비스 팩 주 버전은에 저장되며 %_sp%아키텍처는에 저장됩니다 %_bits%.

노트:

  • 테스트 할 OS 및 서비스 팩 조합이 모두 없기 때문에 완전히 테스트되지 않았습니다.

  • for명령은 OS의 세 번째 부분 (토큰) 만 검색합니다. 이것은 데스크톱 버전에서 작동합니다 (Server 2008을 다른 버전과 구별하려면 다른 솔루션을 찾아야 함).

  • %_os다음 값 중 하나로 설정됩니다 : Server, Vista, 7, 8, 8.1또는 10.

출력 예 :

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

F:\test>

추가 자료


2
몇 가지 테스트를 거친 후 다음 명령을 사용하기로 결정했습니다.wmic os get Caption | findstr /V Caption
Dominique

@DavidPostill 배치 파일을 테스트했습니다. 창을 닫기 전에 사용자에게 출력을 읽을 수있는 기회를 제공 pause하기 전에에 필요하다고 생각합니다 endlocal. 그것도 당신을 위해 있습니까?
Matthew

1
@ Matthew 다른 시스템이 배치 파일을 실행하고 출력을 캡처하거나 기존 명령 프롬프트 창에서 수동으로 호출 할 것으로 기대합니다.
TripeHound

cmd 프롬프트에서 @mathew pause를 실행할 필요가 없습니다. 답은 모든 시나리오에 적합하지 않고 기술을 보여주는 것입니다.
DavidPostill

1
@mathew는 파일을 저장하고 getos를 입력 한 cmd 프롬프트를 엽니 다
DavidPostill

35

나는이 길고 ver 명령을 믿을 수 없다

C:\>ver

Microsoft Windows [Version 10.0.10586]

C:\>

리디렉션에서 작동하므로 할 수 있습니다.

ver | find "Version 10."

그러나 일반적으로 "이 버전과 이후 버전 모두를 위해"를 작성해야 이전 버전을 열거하는 것이 더 좋습니다.


FYI ver는 PowerShell에서 작동 하지 않습니다 . 그것은이다 CMD특정.
Keltari

3
@Keltari하지만 그렇습니다 iex "ver"!
벤 N

의 출력은 ver약간 오해의 소지가 있습니다. 내가 지금 앉아있는 기계에서 돌아갑니다 Microsoft Windows [Version 6.1.7601]. 그러나 나는 그것이 Windows 6이 아니라 Windows 7을 실행한다고 확신합니다.
Philipp

@Philipp 예, Windows 7 및 8은 각각 Vista, 6.1 및 6.2의 "실제"패치 릴리스입니다. 주요 버전은 마케팅입니다. Windows 10의 변경 사항이 중요한 버전 충돌을 보장 할만큼 중요한지 여부는 알 수 없습니다. (하드 라인 소프트웨어 엔지니어링 관점에서 볼 때, 모든 소프트웨어의 주 버전은 이전 버전과의 호환성 중단을 나타 내기 위해
부딪쳐 야

1
@Philipp-버전 번호에서 마케팅 이름
까지의

18

시스템 정보

운영 체제, 시스템 유형 (32/64 비트) 등 많은 유용한 정보를 얻습니다.

여기에 이미지 설명을 입력하십시오


그렇습니다, 나는 systeminfo또한 추천 할 것 입니다. 위의 이미지에서 볼 수 있듯이 운영 체제와 기타 필요한 정보가 표시됩니다.
Matthew

3
빠른 답변 감사합니다. systeminfo실제로 내가 찾고있는 정보 (따라서 공감대)를 제공하지만 시간이 많이 걸립니다 (내 PC에서는 15 초 이상 소요). 따라서 wmic다음 답변에서 찾은 솔루션을 선택했습니다 .
도미니크

1
이것은 사람들이 그들이 운영하는 OS / 버전을 찾아야 할 때 실행하도록 요청하는 것입니다.cmd /c systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
Andrew Savinykh

1
systeminfo의 출력은 언어에 따라 다르므로 더 큰 규모로 실행하고 싶다면 매우 쓸모가 없습니다
Stephan

1

InstallAnywhere에 대한 경험이 없지만 명령 줄을 사용하여 설치된 OS를 확인하는 두 가지 옵션이 있습니다.

  1. Cmd 사용

    systeminfo.exe
    

    명령을 사용하면 systeminfo.exe필드 아래의 결과를 볼 수 있습니다 OS Name. 필요한 정보보다 더 많은 정보를 제공 할 수 있습니다.

    이 명령에 대한 자세한 정보는 Microsoft TechNet 에서 찾을 수 있습니다 .

  2. 파워 쉘

    또는 다음 Powershell 스크립트를 사용하여 원하는 정확한 정보를 반환 할 수 있습니다.

    Get-CimInstance Win32_OperatingSystem | Select-Object  Caption | ForEach{ $_.Caption }
    
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.