본문 바로가기
stdFrog/알쓸잡

[Batch] 네트워크 설정 배치파일 예시

by stdFrog 2021. 8. 31.


배치파일

- 배치 파일(batch file)은 명령 인터프리터에 의해 실행되게끔 고안된 명령어들이 나열되어 있는 텍스트 파일이다.
- cmd.exe와 같은 셸 프로그램이 파일을 읽어 명령어를 줄 단위로 실행한다.
- 배치 파일은 보통 실행 파일을 자동으로, 연속적으로 실행할 때 유용하며 시스템 관리자가 따분한 일들을 자동화하기 위해 자주 사용한다.

<참고 및 인용 : https://ko.wikipedia.org/wiki/배치_파일>

외부 활동이나 작업 시에 유/무선 연결이나 IP 재할당 등의 이유로 네트워크 설정을 변경하곤 합니다.

인터페이스 활성화부터 네트워크 연결 정보 등 번거로운 작업을 도와줄 배치파일 예시를 하나 작성해봤습니다.

 

 


본문


@Echo off
@Chcp 65001>nul
@Color F0
@Title Automation_Net
@cls

:---------------------------------------------------------------------------------------------
:관리자 권한 요청
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

If '%ErrorLevel%' NEQ '0' (
    Goto UACPrompt
) Else ( Goto Got_Admin )

:UACPrompt
    Echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\Get_Admin.vbs"
    Set Params = %*:"=""
    Echo UAC.ShellExecute "cmd.exe", "/c %~s0 %Params%", "", "RunAs", 1 >> "%temp%\Get_Admin.vbs"

    "%temp%\Get_Admin.vbs"
    Del "%temp%\Get_Admin.vbs"
    Exit /B

:Got_Admin
    Pushd "%CD%"
    CD /D "%~dp0"
:---------------------------------------------------------------------------------------------

Set z_Clo=예상되지 않는 행동입니다.

:Loop
cls
Echo.
Echo ===================자동화 도구===================
Echo.
Echo. 번 호  작  업  목  록
Echo.
Echo.    1. 와이파이 활성화

Echo.    2. 이더넷 활성화

Echo.    3. 네트워크 연결 지점 확인

Echo.    0. 종 료

Echo.

:List
Echo.
Set /p Question="번호를 입력하세요 : "
If %Question%==1 (
Goto Wi-Fi
) Else If %Question%==2 (
Goto Ethernet
) Else If %Question%==3 (
Goto Check_Net
) Else If %Question%==0 (
Goto Quit
) Else (
Echo %z_Clo%
Goto List
)

:Wi-Fi
Echo.
Echo Wi-Fi 인터페이스 활성화
Netsh Int Set Int Wi-Fi Enabled>Nul
Echo.
Echo Wi-Fi 자동 구성 활성화
Netsh Wlan Set AutoConfig Enabled=Yes Int=Wi-Fi>Nul
Echo.
Echo 이더넷 비활성화
Netsh Int Set Int "이더넷" Disabled>Nul
Echo 완료
Goto LookUp

:Ethernet
Echo.
Echo. Wi-Fi 자동 구성 비활성화
Netsh Wlan Set AutoConfig Enabled=No Int=Wi-Fi>Nul
Echo.
Echo Wi-Fi 인터페이스 비활성화
Netsh Int Set Int Wi-Fi Disabled>Nul
Echo.
Echo 이더넷 활성화
Netsh Int Set Int "이더넷" Enabled>Nul
Echo.
Echo 완료
Goto LookUp

:Check_Net
Echo.
Echo 인터페이스 목록을 불러옵니다.
Netsh Int Show Int | Findstr /n ^^

:Check_Num
Set /p z_Num="번호를 입력하세요 : "
If %z_Num%==4 (
Goto Check_Net_Wi-Fi
) Else If %z_Num%==5 (
Goto Check_Net_Ethernet
) Else (
Echo %z_Clo%
)
Goto Check_Num

:Check_Net_Ethernet
Echo.
Echo. 네트워크 설정값 확인..
Pause
Ipconfig -all
Echo.
Echo 네트워크 연결 확인..
Pause
Netstat -abnof
Echo.
Echo 완료
Goto LookUp

:Check_Net_Wi-Fi
Ehco.
Echo. 무선 네트워크 정보 확인..
Pause
Netsh Wlan Show Networks Mode=Bssid
Echo.
Echo 인터페이스 확인..
Pause
Netsh Wlan Show Int
Echo.
Echo 완료
Goto LookUp

:LookUp
Echo.
Set /p Question.[1]="다른 작업을 수행하시겠습니까? (y/n) : "
If %Question.[1]%==y (
Goto Loop
) Else If %Question.[1]%==n (
cls
Echo 작업을 종료합니다.
Echo.
Goto Quit
) Else (
cls
Echo %z_Clo%
Goto Lookup
)

:Quit

위 예시는 단순 참고용이며 개인 설정이나 환경에 따라 정상 작동하지 않을 수 있습니다.

배치파일 실행 시 다음과 같은 화면이 출력됩니다.


 

기능은 다음과 같습니다.

1. Wi-Fi 인터페이스 및 자동 구성을 활성화하고 이더넷을 차단합니다.

2. Wi-Fi 자동 구성 및 인터페이스를 차단하고 이더넷을 활성화합니다.

3. 유/무선 네트워크 환경을 사용자가 선택하여 정보를 표시합니다.

  • 유선 : TCP/IP 설정값 및 접속 시간을 출력합니다.
            네트워크가 연결된 지점을 확인합니다 (EX_ 연결 사이트, 서비스, 프로그램 등)
  • 무선 : 주변 무선 네트워크를 불러옵니다 (종류 및 신호 세기, 식별자 등)
            연결된 와이파이의 자세한 정보를 출력합니다 (송수신 속도 및 연결 상태, 주소 등)

 

 

배치파일은 대개 필요한 명령만 간추려서 사용합니다.

즉, 위와 같이 길게 작성하는 경우가 굉장히 드물며 편의를 위해 예시처럼 작성했다는 점 알아두시면 좋겠습니다.

 

글은 짧게 끝내겠습니다

감사합니다.


****관리자 권한 요청 ****

참고 및 인용: https://superuser.com/questions/788924/is-it-possible-to-automatically-run-a-batch-file-as-administrator

 

Is it possible to automatically run a batch file as administrator

I am wondering whether it is possible to automatically open a batch file as admin when you double-click on the batch file, because the commands need to be run with administrative rights. Note: I a...

superuser.com

반응형

댓글