윈 도 우 CMD 파일로 윈도우 비트 구분하고싶습니다.
2019.07.03 19:48
검색해보니 비트 구분하는방법은 여러가지가 있던데요..
if exist %windir%\SysWOW64 (
set WinBit=64
) else (
set WinBit=32
)
또는
echo %PROCESSOR_ARCHITECTURE%
이런 명어들이 나오는데요..
윈도우10,7 구분없이.. 비트 구분해서 비트별로
아래명령어로 방화벽 등록하려고 합니다.
netsh advfirewall firewall add rule name=
방화벽 예외등록하려는 프로그램이 비트별로 파일위치가 다릅니다.
cmd 파일을 어떻게 작성하면 될까요?
댓글 [4]
-
suk 2019.07.03 21:23
-
포토엔유 2019.07.03 22:06
항상 빠른 댓글 감사합니다..
if /i %PROCESSOR_ARCHITECTURE% equ x86
if /i %PROCESSOR_ARCHITECTURE% neq x86
참일경우 와 아닐경우 구분(32비트64비트) 해서 goto 문을 적용하려면 어떻게 해야할까요??
-
suk 2019.07.03 22:21
if /i %PROCESSOR_ARCHITECTURE% equ x86 goto :x86
if /i %PROCESSOR_ARCHITECTURE% neq x86 goto :x64
이렇게 간단하게 하셔도 됩니다.
질문에서 방화벽 예외 등록하신다고 하셨는데요. 32비트와 64비트 프로그램 경로가 다르다고...그런 경우는 그냥 뒤에 나열하시면 됩니다
if /i %PROCESSOR_ARCHITECTURE% equ x86 netsh advfirewall firewall add rule name= (32비트인 경우)
if /i %PROCESSOR_ARCHITECTURE% neq x86 netsh advfirewall firewall add rule name= (64비트인 경우)
명령어가 한줄이면 위와 같이 뒤에 쓰시면 되고, 프로그램들이 많으신 경우는 별도로 goto 방식으로 하시면 될 겁니다
( ) 괄호 방식으로 전부 나열하는 방법도 있습니다
원래 bat 파일은 다양한 방식이 가능합니다. 정해진 답이 없는 경우가 많고, 개인 취향도 많이 작용합니다
-
포토엔유 2019.07.03 22:24
구글 검색해보니 비슷한 답이 있는거 같네요..
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" goto 64BIT
echo. 32-bit OSpause
goto END:64BIT
echo. 64-bit OS
pause
exit:END
exit중간에 원하는 값을 넣으면 되겠네요..
검색해서 찾아봤는데.. suk님 방법이 더 쉽고 간결하겠네요..
ms 순정이라면 SysWOW64 폴더 유무로 구분이 됩니다만...
가끔 보면 32비트 윈도인데도 SysWOW64 폴더가 있더군요.
이런 경우까지 감안하면 폴더보다는 윈도의 set 환경 변수에 있는 %PROCESSOR_ARCHITECTURE%가 나을 겁니다
amd64가 64비트 윈도인 경우 나오는데요. amd64 를 사용하면 CPU가 amd가 아니고 인텔이라는 분들이 계시더군요;
그래서 32비트 윈도인 x86을 구분하는데 사용합니다. 그리고 개인적으로는 else 보다는 그냥 하나씩 나열합니다
if /i %PROCESSOR_ARCHITECTURE% equ x86 32비트입니다. equ는 같다는 뜻 입니다
if /i %PROCESSOR_ARCHITECTURE% neq x86 64비트입니다. neq는 같지 않다 = 다르다 입니다.