유용하게 활용 가능한 배치 파일 만들기

처음 블로그에 글을 적는 내용이라 어떤 부분을 적을지 고민이 많았습니다. 얕은 깊이의 내용이면서도 유용할 수 있는 배치 파일(Batch File)을 이야기해볼까 합니다.

나이가 조금 있으신 분들에게 익숙한 확장자 bat는 MS-DOS, 윈도우 등에서 명령 프롬프트에서 적는 명령어를 파일로 만들어서 사용하는 것입니다.

프로그램을 실행할 때 인자를 넣어야 하는 경우 exe 파일과 인자를 포함한 bat 파일을 만들어서 사용하기도 했습니다. (지금은 바로가기 파일을 만들어 인자를 미리 입력해 두는 것이 더 간단한 방법이겠습니다.)

명령프롬프트

사실 명령 프롬프트란 대부분의 윈도우 사용자에게 ‘자신의 ip 확인할 때’, ‘ping 사용할 때’ 등 거의 쓸 일이 없는 존재입니다만 가끔 정말 유용하게 사용될 때가 있습니다.


배치 파일 만드는 방법

  1. 메모장을 실행합니다.
    notepad실행


  2. 실행하고자 하는 내용을 적습니다.
    notepad작성
    echo 는 출력(printf), pause는 일시정지(wait)로 보시면 되겠습니다.


  3. 다른 이름으로 저장합니다.
    notepad다른이름으로저장
    메모장은 기본 형식이 txt 파일로 저장되기 때문에 모든 파일을 선택하고 저장하고자 하는 파일 이름에 .bat를 붙여서 저장합니다.



  4. 저장된 파일을 실행합니다. 배치파일실행
    앞서 작성된 명령어대로 실행됩니다. echo 뒤에 적혀 있는 ‘헬로우 월드’가 화면에 출력되었고 pause 명령어가 실행되어서 cmd.exe가 종료되지 않고 대기하고 있습니다.

배치 파일 활용법!

배치 파일 만들기는 위 내용으로 종료되었습니다. 정말 간단하게 만들 수 있습니다. 이렇게 만들어진 배치파일로 cmd 창에 존재하는 모든 명령어 등을 사용하여 정말 다양하게 활용할 수 있습니다.

절전 모드 실행

비공대생이면서 IoT 제품의 얼리아답터인 대학 선배와 술을 마시는데 클릭 한 번으로 절전 모드가 되면 좋겠다는 말씀을 하시더라고요.

시작 > 전원 > 절전 이 너무 번거롭답니다.

저는 번거롭지 않았지만 필요하시다니까 간단하게 절전 모드 명령어를 배치 파일로 만들어 작업표시줄에 등록해서 클릭하면 절전 모드가 된다고 했더니~

만들어 달라고 하시네요!

  1. 절전 모드 cmd 명령어를 검색합니다. 배치파일실행
    %windir%\System32\rundll32.exe powrprof.dll SetSuspendState
    


  2. 위와 마찬가지로 배치 파일을 만듭니다. 절전모드배치파일


  3. 만든 파일은 따로 두고, 바로 가기를 만들어 작업표시줄에 등록합니다. 절전모드배치파일


프로그램 종료 방지

항상 실행되어야 하는 프로그램이 있는데 프로그램이 자의로든 타의로든 종료가 발생할 경우! 곤란합니다.

와치독 개념으로 프로그램 상태를 주기적으로 확인하는 프로그램을 트레이 아이콘으로 만들어서 관리하는 것이 제일 좋겠습니다만, 현장에서 급하게 위의 프로그램이 준비가 되지 않았거나 ‘나는 개발자가 아닌데 어떻게 이런 걸 하겠냐’는 생각이 드는 분도 계실 겁니다.

간단하게 배치 파일을 만들어 종료를 방지할 수 있습니다. 이전과 같은 방식으로 아래 소스를 bat 파일로 저장합니다.

:START 
프로그램명.exe 
@GOTO START

배치 파일이 실행되면 프로그램이 실행됩니다. 프로그램이 종료되면 다시 START 지점으로 가서(GOTO) 프로그램을 실행합니다. 프로그램명 부분은 실제 프로그램의 경로가 포함되어야 합니다. 프로그램이 있는 경로를 넣기 부담스러우면 프로그램이 있는 폴더에 배치 파일을 저장하면 됩니다.

그리고 시작프로그램 shell:startup 폴더에 바로 가기를 저장합니다. 윈도우가 시작될 때 해당 프로그램이 바로 실행 되고, 혹시 종료되더라도 재실행시키는 기능을 저 짧은 소스로 구현해봤습니다!

기타 활용

  • 특정 시간(30분) 후 윈도우를 자동 종료

      shutdown -s -t -f 1800
    

    예) 게임 이벤트로 2시간 동안 접속해 있어야 하는데 아직 30분이나 남았고 지금 자리를 비워야만 할 때!

  • 특정 프로그램 종료

      taskkill /f /im notepad.exe
    

    예) 게임을 실행할 때마다 마음에 안 드는 이상한 프로그램이 같이 실행 될 때

  • 특정 와이파이 연결

      netsh wlan connect name="wifi명" ssid="wifi명" 
    

    예) 사무실 내 와이파이가 너무 많아 원하는 SSID를 찾기 어려울 때


사실 위의 간단한 경우들과는 다르게 배치 파일에 활용 가능한 수~많은 명령어들이 있습니다. 비개발자라 하더라도 윈도우 사용자라면 위와 같이 간단한 명령어를 활용하여 유용한 기능들을 구현할 수 있습니다!

읽어주셔서 감사합니다.