명령 줄에서 현재 Windows 버전이 32 비트인지 64 비트인지 어떻게 알 수 있습니까? [복제]


26

OS에서 32 비트 버전 또는 64 비트 Windows를 실행 중인지 확인하는 명령 줄은 무엇입니까?


어떤 언어로?!
Alix Axel

@ AlixAxel, 그들은 명령 줄 이라고 말 했으므로 아마도 Batch 일 것입니다.
Synetech

답변:


33

WMI를 통해 얻을 수 있습니다.

wmic OS get OSArchitecture

내 시스템의 예 :

C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit

나는이 대답을 좋아하지만 (WMI 콘솔을 배우십시오 :)) 키 입력을 위해 "systeminfo"에 제공해야합니다. ;)
Ƭᴇcʜιᴇ007

XP?
Synetech

18

명령 줄 :

systeminfo | findstr /I type:

출력 예 :

시스템 유형 : X86 기반 PC

X86은이 예에서 32 비트 시스템을 나타냅니다.

( /I 매개 변수는 대소 문자를 구분하지 않는 검색을 나타냄)


나는 당신에게 키 스트로크에 대한 요점을 주었고, 당신은 그것을 더 길게 만들었습니다. hehe :)
Ƭᴇcʜιᴇ007

그것은 내 대답이 아니다 : P
John T

2
그러나 "X86 기반 PC"는 OSArchitecture 32 비트와 동일합니까? x64 프로세서에서 32 비트 Win XP를 실행할 수 있습니다.
Michael Caron

OS 언어가 독일어이거나 englisch 이외의 언어 인 경우주의하십시오! systeminfo | findstr /I typ:전체 항목이 다음과 같이 바뀌어야합니다.Systemtyp: x64-based PC
CeOnSql

systeminfo | findstr /C:"System Type"또한 동일한 정보를 검색하지만 더 긴 텍스트는 선호하지 않습니다.
Abhijeet

13

여기에 다른 게시물에 답변을 첨부 할 수 없습니다. 결과를 파이핑 systeminfo하는 것은 꽤 많은 시간이 걸리고 콘솔에 쓰기 때문에 명령 파일에 가장 적합한 솔루션은 아닙니다 (배치 스크립트-어쨌든 B-).

심지어 findstr-다른 언어 버전의 창에서는 이것을 찾을 수 없습니다. 중앙 유럽 언어 win7 os에서는 결과에 ... "X86 기반"...을 반환하지만 "type"은 다른 유형을 찾고있었습니다. OS의 다른 언어 변형에 따라 다를 수 있는지 확실하지 않습니다.

아마도 "wmic"방법이 가장 신뢰할 수 있습니다. os에게 직접 요청합니다.

다른 가능한 빠른 해결책은 변수를 검사하는 것입니다 (적어도 win7에서 작업 중).

echo %PROCESSOR_ARCHITECTURE%

좋아-기억하기는 꽤 길지만 가능한 set | findstr ARCH기억할 수 있습니다.

물론 일부는 시스템 변수를 수정하여보다 신뢰할 수 없습니다 wmic. 그러나 빨리 사용할 수 있습니다.

나는 누군가를 도울 수 있기를 바랍니다.


이전 에이 환경 변수를 본 적이 없기 때문에 (아마도 그것을 찾지 못했기 때문에) echo 상자가 XP 상자에서 작동하는지 확실하지 않지만 실제로는 그렇지 않습니다. 간단한 해결책은 +1입니다.
music2myear

11

Windows에서 프로세서 아키텍처를 확인하는 방법은 여러 가지가 있습니다.

  • Windows 2000 이상 에서 프로세서 아키텍처를 확인하는 가장 빠르고, 쉽고, 가장 호환 가능한 방법 은 PROCESSOR_ARCHITECTURE 환경 변수 를 검사하는 것입니다 .

    echo %PROCESSOR_ARCHITECTURE%

  • 그러나 이는 명령 프롬프트가 열리는 방식에 따라 다른 결과를 제공 할 수 있습니다. WoW64로 인해 "예기치 않은 결과"가 발생하는 것을 방지하기 위해 레지스트리에서 직접 읽을 수 있습니다 (Microsoft는 키에 오타를 두 번 이상 입력 하지 않았습니다 ).

    reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE

  • 또한 레지스트리에서 하드웨어 정보 저장소를 읽는 것이 좋습니다.

    reg query "HKLM\Hardware\Description\System\CentralProcessor\0" /v Identifier

  • 64 비트 시스템에만 존재하므로 x86 버전의 Program Files디렉토리 (또는 디렉토리 를 가리키는 환경 변수) 가 있는지 확인할 수도 있습니다. PROCESSOR_ARCHITECTURE변수 와 달리 이는 프롬프트가 열리는 방법에 관계없이 디렉토리가 존재하기 때문에 명령 프롬프트가 실행되는 방식에 의존하지 않습니다.

    • ::via env-var
      if not defined ProgramFiles(x86) echo 32-bit

    • ::via file-system
      if not exist "%systemdrive%\Program Files (x86)" echo 32-bit

이러한 방법은 단일 배치 파일 (예 :)로 결합 할 수 있으며 cpuinfo.bat다른 프로그램이나 프레임 워크를 실행하지 않고도 표준 Windows NT 명령 프롬프트에서 시스템을 검사 할 수있는 빠르고 간편한 방법을 제공합니다.

아래의 배치 파일은 32 비트 및 Intel 64 비트 시스템에서 테스트되었으며 (AMD64에서 테스트하십시오), 1 초 미만의 정확한 결과를 제공합니다.

시험 결과

@echo off

echo PROCESSOR_ARCHITECTURE var:
echo %PROCESSOR_ARCHITECTURE% | find /i "x86" > nul
if %errorlevel%==0 (
    echo   32-bit
) else (
    echo   64-bit
)
echo.

echo PROCESSOR_ARCHITECTURE reg:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE | find /i "x86" > nul
if %errorlevel%==0 (
    echo   32-bit
) else (
    echo   64-bit
)
echo.

echo CentralProcessor reg:
reg query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul
if %errorlevel%==0 (
    echo   32-bit
) else (
    echo   64-bit
)
echo.

echo ProgramFiles(x86) var:
if not defined ProgramFiles(x86) (
    echo   32-bit
) else (
    echo   64-bit
)
echo.

echo ProgramFiles(x86) dir:
if not exist "%systemdrive%\Program Files (x86)" (
    echo   32-bit
) else (
    echo   64-bit
)
echo.

5

나는 그 OSArchitecture속성을 찾을 수 없었습니다 (phoebus의 답변에 따라) 대신 SystemType속성을 사용하는 것이 좋습니다 ComputerSystem.

wmic computersystem get systemtype명령 프롬프트에서 명령 을 실행 하면

C:\Windows\system32>wmic computersystem get systemtype  

SystemType x64-based PC

4

정규 명령 행 : wmic OS get OSArchitecture (IIRC)

PowerShell : (gwmi win32_computersystem).SystemType


1
내가 얻을 Invalid QueryXP에서.
Synetech

1

Windows OS를 언급하는 경우 WMI와 함께 vbscript를 사용할 수 있습니다

strComputer = "."    
Set objWMIService = GetObject("winmgmts{impersonationLevel=impersonate,authenticationLevel=Pkt}!\\" & strComputer & "\root\cimv2")    
Set colSettings = objWMIService.ExecQuery("SELECT * FROM Win32_Processor")

For Each objProcessor In colSettings
Wscript.Echo "System Type: " & objProcessor.Architecture
Wscript.Echo "Processor: " & objProcessor.Description
Wscript.Echo "Address Width: "& objProcessor.AddressWidth
Next

1

"시스템 정보"를 사용하여 해당 정보를 찾을 수 있습니다

시작-> 실행-> winmsd.exe

"시스템 요약"/ 시스템 유형에서 OS 버전을 찾을 수 있습니다

X64-> 64 비트
X86-> 32 비트

GUI에서 JohnT의 답변;)


1

시작»실행으로 이동 한 다음을 입력하십시오 cmd. 이제 명령 프롬프트가 나타납니다. 거기에서 systeminfo입력 한 다음 Enter 키를 누를 수 있습니다. 모든 시스템 정보를 얻는 데 몇 초가 걸립니다. 프로세서 데이터도 찾을 수 있습니다.

 Processor(s):              1 Processor(s) Installed.
                           [01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
  • x86 제품군은 프로세서가 32 비트임을 의미합니다.
  • x64 제품군은 프로세서가 64 비트임을 의미합니다.

C : \ 문서 및 설정 \ mr85464> systeminfo

OS Name:                   Microsoft Windows XP Professional
OS Version:                5.1.2600 Service Pack 3 Build 2600
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Member Workstation
OS Build Type:             Multiprocessor Free
Product ID:                76487-640-3658033-23932
Original Install Date:     3/16/2012, 2:03:44 PM
System Up Time:            5 Days, 21 Hours, 35 Minutes, 51 Seconds
System Manufacturer:       Dell Inc.
System Model:              OptiPlex 210L
System type:               X86-based PC
Processor(s):              1 Processor(s) Installed.
                           [01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
~2992 Mhz

2
실제로 몇 초가 걸립니다! 정보를 캐시하지 않기 때문에 다시 실행해도 도움이되지 않습니다. 또한 Windows 업데이트로 인해 아키텍처에 대한 부분이 화면 밖으로 빠르게 스크롤되므로 버퍼가 충분하지 않은 경우으로 파이프해야합니다 more.
Synetech

0

내가 사용한 간단한 코드 :

:arch
set p | findstr /i AMD64 > nul
if not errorlevel 1 goto no64
goto eof
:no64
code to execute
:eof
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.