답변:
약간 더 빠른 방법은 % ProgramFiles (x86) % 디렉토리가 있는지 확인하는 것입니다. 존재하는 경우 64 비트를 실행 중이고 존재하지 않으면 32 비트를 실행 중입니다.
빠른 원 라이너 :
if exist "%ProgramFiles(x86)%" echo 64-bit
64-bit
디렉토리가 존재 하면 출력 됩니다. 그러나 변수로 존재하지 않았지만 디렉토리로 존재하면 (% ProgramFiles (x86) %) 실패합니다.
찾기 도구를 사용하여 비트를보다 정확하게 결정할 수 있습니다.
set | find "ProgramFiles(x86)"
또는 systeminfo
이전 에 명령을 사용하여
systeminfo | find /I "System type"
( /I
XP / 2003 / 2008 / etc에서 작동하도록 포함 )
어때요 :
echo %PROCESSOR_ARCHITECTURE%
32 비트 시스템에서는 x86 을, 64 비트 시스템에서는 AMD64 (또는 IA64 )를 반환 합니다.
Program Files (x86)
입니다. 당신은 할 수 도 의 존재를 확인 %PROGRAMFILES(X86)%
(이 경우 환경 변수를 하지 않는 존재, 다음에 x86 머신에있어).
systeminfo | find /I "System type"
이것은 로케일에 따라 다르며 느립니다 .
echo %PROCESSOR_ARCHITECTURE%
공지 사항, 그것의 그 86 32 비트로 cmd.exe
.
올바른 방법 :
set Arch=x64
if "%PROCESSOR_ARCHITECTURE%" == "x86" (
if not defined PROCESSOR_ARCHITEW6432 set Arch=x86
)
PROCESSOR_ARCHITEW6432
WMI 쿼리로 확인하는 다른 방법 :
PowerShell :
(gwmi win32_computersystem).SystemType
CMD :
wmic OS get OSArchitecture
여기에서 추출되었습니다 : http://www.sysadmit.com/2015/10/windows-como-saber-si-es-de-32-o-64-bits.html
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.
이것이 이상적인 대답은 아니며 systeminfo.exe
시스템 유형 (예 : 32 비트 또는 64 비트)을 결정하기 위해 선호하는 방법이어야하지만이 솔루션은 systeminfo.exe
작업이 완료 되기를 기다리지 않을 경우 약간 더 빠르게 실행됩니다 .
명령 :
reg.exe query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | find "BuildLabEx"
레지스트리 쿼리 및 검색 문자열을 올바르게 변경하면 Windows 95까지 운영 체제 버전을 확인할 수 있습니다. systeminfo.exe
보다 정확하고 올바른 쿼리 방법 reg.exe query
은 더 빠르며 역 호환됩니다.
reg query "HKLM\[..as before..]\Version" /v BuildLabEx
방법 1 :
(와 두 단계 검증 PROCESSOR_ARCHITECTURE
과 PROCESSOR_ARCHITEW6432
)
set Arch=x64
if "%PROCESSOR_ARCHITECTURE%" == "x86" (
if not defined PROCESSOR_ARCHITEW6432 set Arch=x86
)
if %Arch% == "x64" (
msg * "yessss"
) else (
msg * "noooo"
)
방법 2 :
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x32" > NUL && set OS=32BIT || set OS=64BIT
if %OS%==32BIT echo "YESSS"
if %OS%==64BIT echo "NOOO"
systeminfo | find "System type"
Capitol T는 아무것도 반환하지 않아야합니다 .