강좌 / 팁

윈 도 우 배치파일 등에서 윈도우 32비트/64비트 구분

2022.03.27 01:49

지후빠 조회:1417 추천:17

안녕하세요? 질문 게시물 댓글에 올린 내용 간략히 정리해봅니다. ^^

- https://windowsforum.kr/qna/17822316

 

참고 링크

- https://docs.microsoft.com/en-us/archive/blogs/david.wang/howto-detect-process-bitness

- https://ss64.com/nt/syntax-64bit.html

 

C:\Program Files (x86) 폴더 존재 여부 등을 체크하는 방법도 있겠지만 보다 정확한 방법을 위한 내용입니다.

 

1. 환경변수 이용

환경변수 네이티브 32비트 네이티브 64비트 WOW64(64비트 OS에서 32비트 실행)
PROCESSOR_ARCHITECTURE x86 AMD64, IA64, ARM64 x86
PROCESSOR_ARCHITEW6432 - - AMD64, IA64, ARM64

- WOW64; 64비트 OS에서 32비트용 유틸(TC, Q-dir 등 32비트용)에서 배치파일, cmd.exe 등을 실행할 경우에 해당합니다.

c:\Windows\SysWOW64\cmd.exe 32비트 환경에서 실행됨.

- 표에서 알 수 있듯이 다음의 경우만 32비트 OS이고, 다른 경우에는 64비트 운영체제 입니다.

PROCESSOR_ARCHITECTURE=x86 이고 PROCESSOR_ARCHITEW6432 가 정의 되어있지 않을때

- 배치 파일내에서 다음처럼 구분할 수 있습니다.

set "OSbit=64" & if %PROCESSOR_ARCHITECTURE%==x86 (if not defined PROCESSOR_ARCHITEW6432 set "OSbit=32")

 

2. WMIC 이용

wmic OS Get OSArchitecture -> 결과 첫번째행; OSArchitecture / 두번째행; 64비트, 64 비트, 64-bit 등 윈도우 버전에 따라 조금씩 다름

for /f "skip=1 tokens=*" %%a in ('wmic OS Get OSArchitecture') do set "OSbit=%%a"&call set "OSbit=%%bit:~0,2%%"&goto next

:next

- wmic cpu get AddressWidth /value -> 결과 앞뒤 빈줄이 생기지만 AddressWidth=64 형태로 출력

for /f "tokens=2 delims==" %%a in ('wmic cpu get AddressWidth /value') do set "OSbit=%%a"

 

번외로...

 

3. VBScript ; GetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'").AddressWidth -> 32 또는 64 로 출력

cmd에서 실행은 다음처럼; (mshta~~~more까지 한줄로 연결된 명령어입니다.)

mshta vbscript:close(CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(GetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'").AddressWidth))|more

 

4. Powershell ; [system.environment]::Is64BitOperatingSystem -> 결과 True 면 64비트

cmd에서 실행은 다음처럼; 

powershell -c [system.environment]::Is64BitOperatingSystem

powershell -c "& {[system.environment]::Is64BitOperatingSystem}"

 

5. AutoHotkey ; A_Is64bitOS -> True(1) or False(0)

 

6. 닷넷4 C# 이용 ; 이렇게 까지 할 필요는 없겠지만... 흥미로...

Is64BitOS.cmd 실행하면 같은 폴더에 콘솔용 Is64BitOS.exe 가 생성되고 실행됩니다. exe가 있으면 바로 exe 실행합니다.

창이 바로 닫히므로, 콘솔에서 실행하면 64이면 True가 출력됩니다.

2022-03-27_134102.png

 

예전에 궁금해서 검색해본 내용인데 간략히 정리해봤습니다.

혹, 좋은 아이디어 있으시면 올려주시면 배우겠습니다. ^^

늦은 시간입니다. 편히 주무십시오. -꾸~벅-

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
1822 윈 도 우| VHD 동적확장-고정간 변환 및 크기 변경 [1] 신세계 1640 5 06-01
1821 윈 도 우| Windows 10에서 Windows Update를 수동으로 설치하기 VenusGirl 1642 3 07-11
1820 윈 도 우| 윈도우7 사진 미리보기 안되는 문제 해결책 [1] 무림거사 1647 2 07-21
1819 윈 도 우| Chromium 기반 브라우저 OS 지원 종료 예정 알림 제거 자동... [8] 녹색조각 1647 15 12-29
1818 윈 도 우| 메모장으로 텍스트 스크랩 편하게하기 [5] 레마클로 1648 5 03-12
1817 윈 도 우| Windows 11에서 시스템 요구 사항이 충족되지 않음 미리 알... [1] VᴇɴᴜꜱGɪ 1658 11 02-24
1816 윈 도 우| 윈도우 설치전 데이터 손실방지 하기! [7] 무월 1659 21 01-29
1815 윈 도 우| 유니버설 미디어 생성 도구 - Windows 10 21H1 지원 도구 [3] VₑₙᵤₛG 1661 8 03-27
1814 윈 도 우| PE에서 드라이버가 설치 되기위해 필요한 파일 [10] @카리스마 1668 8 02-17
1813 윈 도 우| Windows 11의 God 모드를 사용하여 한 화면에서 모든 설정... [1] VᴇɴᴜꜱGɪ 1672 5 04-25
1812 윈 도 우| Windows ISO의 정확한 빌드 번호 확인하기 [3] suk 1684 13 05-11
1811 윈 도 우| ReBoot 시 Bios 로 바로 진입하기 [12] 타천사둘리 1693 33 05-05
1810 윈 도 우| 무대뽀 UEFI PE 시스템 만들기(수정완료) [3] PC_Clinic 1696 12 12-25
1809 윈 도 우| Windows 설치시 Pin 절로 보내기 [9] 메인보드 1702 9 06-30
1808 윈 도 우| 탐색기창.익스.크롬창 등등... 원하는자리 배치 [2] 메인보드 1703 12 02-13
1807 윈 도 우| MS에서 DISM 기능을 축소한것일까요? [2] maniaa 1703 6 10-04
1806 윈 도 우| backup2VHD & 토글스위치(수정) [7] 레마클로 1717 13 01-17
1805 윈 도 우| Windows 업데이트를 사용하여 데이터를 잃지 않고 Windows ... [7] VᴇɴᴜꜱGɪ 1718 8 04-23
1804 윈 도 우| Microsoft Store 기본앱 삭제/재설치 하기 [4] ktseeng 1719 8 05-05
1803 윈 도 우| Windows10 PE에서 다음 팟플레이 실행시 에러 해결방법 [6] 사랑맨 1722 8 12-09
XE1.11.6 Layout1.4.8