강좌 / 팁

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

2022.03.27 01:49

지후빠 조회:1396 추천: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 - - -
4323 윈 도 우| BCD 백업 및 복구 프로그램 입니다 [11] 지룡자 3104 25 12-10
4322 소프트웨어| WinNTSetup.exe에 소소한 팁들 [18] suk 3471 25 03-09
4321 소프트웨어| 디지털 포렌식 툴 - FTK imager [15] 오스 5043 25 01-28
4320 소프트웨어| Total Commander 9.5x 32비트 및 64비트용 한국어 확장 메... [11] VenusGirl 4715 25 03-13
4319 소프트웨어| Win10PE 2016_LTSB_x64 PE 만들기 [24] 대추사랑 5971 25 02-12
4318 윈 도 우| 나만의 PE를 만들자 실전편 3탄 PE고수되기1편 (윈도우10PE... [94] 지연서연아 8671 25 09-01
4317 윈 도 우| W7-8PE Builder제작/완성/수정하여 다시첩부 UP/처음사용자용 [21] 까꾸리 12561 25 06-03
4316 소프트웨어| (추가3) 배치파일 추가기능 extd.exe 사용 팁 [7] 지후빠 949 24 08-13
4315 소프트웨어| pureBasic - FMIFS FormatEX 0.1.2 [6] 입니다 989 24 12-08
4314 소프트웨어| 특정 프로그램을 인터넷 차단하는 방법(인증문제 등...) [3] 사랑이7 2593 24 05-26
4313 윈 도 우| [실사] 윈도우11 프로 VHD 설치 방법 [11] 무월 3121 24 05-08
4312 윈 도 우| [실사] 윈도우11&10 BCD 부팅 오류, 부트 복구(설치) [16] 무월 2463 24 12-05
4311 윈 도 우| [팁] MBR 디스크에 EFI 시스템 파티션 만들기 [16] suk 5634 24 04-19
4310 윈 도 우| 추가)PE 우측하단 워터마크에 각종 정보 넣기 [14] 히이이잌 2697 24 06-16
4309 윈 도 우| 나만의 PE를 만들자 실전편 4탄 PE고수되기2편 (윈도우10PE... [74] 지연서연아 6520 24 09-05
4308 윈 도 우| PE를 실컴에 설치하여 사용하는 방법 [33] 카리스마조 15529 24 05-14
4307 소프트웨어| RSImagex 에디션 WIM 통합 플래쉬 동영상 강좌... [75] 아이언 10101 24 04-29
4306 소프트웨어| 탐색기 컨텍스트 메뉴에 토탈커맨더에서 열기 추가 [15] 지후빠 971 23 07-16
4305 소프트웨어| PE용 다기능 AutoAdd(Config).cmd 작성 팁 [10] 지후빠 1967 23 05-14
4304 윈 도 우| 토렌트 사이트들 한꺼번에 검색하고 열기(파워쉘) [19] zerojiddu 3739 23 05-23
XE1.11.6 Layout1.4.8