윈 도 우 배치파일 등에서 윈도우 32비트/64비트 구분
2022.03.27 01:49
안녕하세요? 질문 게시물 댓글에 올린 내용 간략히 정리해봅니다. ^^
- 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가 출력됩니다.
예전에 궁금해서 검색해본 내용인데 간략히 정리해봤습니다.
혹, 좋은 아이디어 있으시면 올려주시면 배우겠습니다. ^^
늦은 시간입니다. 편히 주무십시오. -꾸~벅-
댓글 [7]
번호 | 제목 | 글쓴이 | 조회 | 추천 | 등록일 |
---|---|---|---|---|---|
[공지] | 강좌 작성간 참고해주세요 | gooddew | - | - | - |
1827 | 윈 도 우| 음악재생 프로그램 ..오디오게이트 설치 사용법 [11] |
|
18895 | 2 | 03-01 |
1826 | 윈 도 우| Windows 7 xDark Deluxe x64 v3.1 RG 한글팩 설치 방법 [8] | 레오퍼드 | 18885 | 0 | 07-16 |
1825 | 윈 도 우| UEFI 윈도8.1부팅시 SecureBoot 메세지 해결방법 [9] |
|
18859 | 1 | 09-20 |
1824 | 윈 도 우| 윈도우7 업데이트 확인중 3분 안에 되는 방법 [23] | 난약사 | 18812 | 4 | 02-18 |
1823 | 윈 도 우| [컴퓨터매니아의 컴퓨터 살펴보기] 1-(1) - MSDaRT 설치, ... [7] |
|
18760 | 11 | 01-20 |
1822 | 윈 도 우| USB UEFI 설치 팁 [29] | 보[boram]람 | 18760 | 3 | 11-09 |
1821 | 윈 도 우| VHD를 WTG로 사용하기_Win8 [11] | 하늘보기 | 18757 | 18 | 04-14 |
1820 | 윈 도 우| 파티션 합치기(Partition Wizard Professional 5) [9] |
|
18755 | 1 | 07-15 |
1819 | 윈 도 우| Win 8 시작메뉴 바꾸기. [12] |
|
18747 | 0 | 09-15 |
1818 | 윈 도 우| vhd로 pe를 사용하자. [11] | 박군 | 18721 | 6 | 04-19 |
1817 | 윈 도 우| 윈도우 7 . IE11 설치 한뒤. [9] | 억무리 | 18643 | 7 | 11-09 |
1816 | 윈 도 우| IE11 호환성 개선, 'IE11 엔터프라이즈 모드 for Windows7'... [29] | 캇떼니시로 | 18611 | 4 | 03-17 |
1815 | 윈 도 우| Windows 7 SP1 롤업 업데이트 2775511 | CatzVader | 18592 | 2 | 04-08 |
1814 | 윈 도 우| MS Visual C++ 2005/2008/2010 패키지모음 및 오류해결 [7] | 드로리안 | 18547 | 4 | 05-12 |
1813 | 윈 도 우| 윈도우 8.1 키 정보 확인하기 [2] | DOS | 18478 | 1 | 09-29 |
1812 | 윈 도 우| 만능 복구 USB 제작(1편) [33] | ITforce | 18476 | 11 | 05-03 |
1811 | 윈 도 우| Z폴더(디렉토리)를 만들어 사용하세요^^ [7] |
|
18459 | 0 | 02-22 |
1810 | 윈 도 우| 어도비 플래쉬 플레이어 설치가 안되서 몇몇 창이 안보일때... [5] | 천재웅이 | 18439 | 2 | 02-17 |
1809 | 윈 도 우| Windows 7 pro 인증토큰으로 인증받기 [4] | gooddew | 18430 | 0 | 02-03 |
1808 | 윈 도 우| 윈도우 7 & 서버 2008 R2 통합하기 [2] |
|
18374 | 0 | 02-25 |
경험아니면 알수없는 깨알 부분까지 감사합니다.