Batch 배치파일 작성하고 만드는 방법

Windows에서는 일상적인 작업을 자동화하고, 파일 및 디렉터리 관리, 소프트웨어 설치, 시스템 설정 변경, 백업 등 다양한 작업을 수행하는 데 다양한 도구가 존재하지만 Windows에서 기본적으로 사용할 수 있는 대표적인 방법은 배치batch 파일을 활용하는 것 입니다. Batch파일은 컴퓨터 운영 체제에서 실행되는 일련의 명령을 스크립트 형태로 저장한 파일입니다. Batch파일은 주로 Windows 운영 체제에서 사용되며, 명령 프롬프트에서 실행되거나 스케줄러를 통해 일정한 시간에 자동으로 동작하도록 정의할 수 있습니다. batch파일 더 알아보기

예를들어, Batch파일을 이용하면 중요한 파일을 정기적으로 백업하고, 필요한 경우 백업된 파일을 복원하거나, 레지스트리 설정, 서비스 제어, 환경 변수 설정 등 시스템 설정 변경 작업을 수행할 수 있습니다. 특정 시간에 작업을 예약하거나 주기적으로 실행되는 작업을 스케줄링할 수 있으며, 웹에서 정보를 수집하거나 웹 사이트 모니터링 작업을 수행하는 등 사용자의 요구 사항에 따라 사용자 정의 작업을 자동화할 수 있어 잘 활용하면 매우 유용한 도구입니다. Batch파일은 기본적으로 일반적인 텍스트 편집기로 작성할 수 있으며 파일 생성 및 실행 방식은 다음과 같습니다.

아래 설명은 informanual.com 에서 테스트 및 검증 후 작성 된 내용이지만 이것이 본문의 내용의 정확성이나 신뢰성에 대해 보증을 하는 것은 아니니 단순하게 참고용으로 확인바랍니다.

튜토리얼 환경: 윈도우 11

Batch파일 작성하기

Batch 파일은 일반 텍스트 파일이므로 Windows의 내장 텍스트 편집기인 메모장 또는 다른 코드 편집기를 사용하여 작성하고 편집할 수 있습니다. 배치 파일 내에서 명령어와 스크립트 문법을 사용하여 원하는 작업을 정의하고, 파일을 저장한 후 실행할 수 있습니다.

Explorer patcher 설치 또는 삭제하기

기본 형식

Batch파일 작성에는 몇 가지 기본적인 규칙과 구문이 있습니다.

@echo off
echo Hello, world!
pause

다음 배치 파일을 실행하면 "Hello, world!"라는 메시지를 출력한 후 사용자가 아무 키나 누를 때까지 대기합니다.

주요 배치 명령어

자주 사용되는 주요 Batch명령어에는 다음과 같은 것들이 존재합니다.

  • @echo off: 이후의 모든 출력을 비활성화합니다.
  • echo: 메시지를 출력합니다.
  • pause: 사용자가 아무 키나 누르기 전까지 대기합니다.
  • set: 변수 값을 설정하거나 변경합니다.
  • if, else: 조건문을 구현할 수 있습니다.
  • for, goto, :label: 반복문과 점프명령(분기점 생성 및 점프)으로 제어 구조를 만듭니다.
  • %~dp0, %1, %*: 스크립트 경로와 인수 등 다양한 시스템 변수와 파라미터에 접근할 수 있습니다.이외에도 더 많은 명령어들이 존재합니다.
윈도우 10 파일 탐색기 프로세스를 다시 시작하는 방법

Batch 파일 만들기

Batch파일을 작성하려면 텍스트 에디터를 열고 원하는 명령어와 스크립트를 입력한 후 파일을 저장하면 됩니다. 저장할 때 .bat 또는 .cmd 확장자를 지정하여 Batch 파일로 저장하면 됩니다. 그런 다음 Batch 파일은 명령 프롬프트에서 실행할 수 있습니다.

메모장이나-에디터에-스크립트-작성
메모장이나 에디터에 스크립트 작성

아래는 현재 요일을 확인하고, 일요일(0)인 경우에만 컴퓨터를 종료합니다. 다른 요일에는 종료하지 않는 Batch 파일입니다. 이 스크립트를 Batch 파일로 생성하기 위해 메모장이나 주로 사용하는 텍스트 에디터를 열고 작성하거나 붙여넣기 합니다.

@echo off
rem 현재 요일을 확인하여 종료 여부 결정

rem "date" 명령어로 현재 날짜와 요일을 가져옴
for /f "tokens=1 delims=," %%a in ('wmic os get localdatetime ^| find "."') do set datetime=%%a
set yyyy=%datetime:~0,4%
set mm=%datetime:~4,2%
set dd=%datetime:~6,2%
set /a mm=10%mm% %% 100
set /a dd=10%dd% %% 100

rem 날짜 정보로 요일 계산 (0:일요일, 1:월요일, ..., 6:토요일)
set /a "dow=(%yy% - 1980) * 365 + %yy% / 4 - %yy% / 100 + %yy% / 400 + (%mm% * 367 - 1094) / 12 + %dd% - 1"
set /a "dow=dow %% 7"

rem 요일에 따라 종료 여부 결정
if %dow%==0 (
  echo 일요일입니다. 컴퓨터를 종료합니다.
  shutdown /s /f /t 0
) else if %dow%==1 (
  echo 월요일입니다. 컴퓨터를 종료하지 않습니다.
) else if %dow%==2 (
  echo 화요일입니다. 컴퓨터를 종료하지 않습니다.
) else if %dow%==3 (
  echo 수요일입니다. 컴퓨터를 종료하지 않습니다.
) else if %dow%==4 (
  echo 목요일입니다. 컴퓨터를 종료하지 않습니다.
) else if %dow%==5 (
  echo 금요일입니다. 컴퓨터를 종료하지 않습니다.
) else (
  echo 토요일입니다. 컴퓨터를 종료하지 않습니다.
)
확장자-변경-후-저장
확장자 변경 후 저장

파일 이름(N): 필드에서 파일이름.bat 또는 파일이름.cmd로 저장합니다. 어느 확장자를 사용하더라도 Windows 운영 체제에서 인식하고 실행할 수 있습니다.

기본-Batch-파일-아이콘
기본 Batch 파일 아이콘

파일을 저장하면 이런 형태의 아이콘이 생성됩니다.

배치파일 열기

배치 파일은 Windows 시스템에서 다양한 방법으로 실행할 수 있으며, 필요한 실행 방법에 따라 선택할 수 있습니다. 관리자 권한이 필요한 경우에는 관리자 권한으로 실행하는 방법을 선택해야 합니다.

Batch-파일-실행
Batch 파일 실행

생성된 Batch파일을 마우스로 두번 클릭하면 됩니다. Batch 파일이 특정 작업을 수행하기 위해서는 관리자 권한으로 실행되어야 하는 경우가 있는데 이 경우 마우스 오른쪽 버튼으로 클릭해 컨텍스트 메뉴에서 관리자 권한으로 실행을 선택합니다.

참고: Batch파일은 우클릭 메뉴에서만 실행할 수 있는 것이 아닙니다. Batch파일은  명령 프롬프트에서 직접 실행하거나, Windows 작업 스케줄러를 사용하여 배치 파일을 특정 시간에 자동으로 실행하거나 이벤트에 따라 실행할 수 있습니다. 또는 명령 프롬프트나 PowerShell 스크립트에 포함시켜서 동작하도록 구성할 수도 있습니다.
Clipboard

배치파일에 관리자 권한 요청 추가

배치 파일 내에 관리자 권한을 요청하는 코드를 추가할 수 있습니다. 이렇게 하면 배치 파일을 더블 클릭하여 실행할 때 관리자 권한을 요청하게 됩니다. 다음은 관리자 권한을 요청하는 배치 파일의 예시입니다.

@echo off
:: Batch 파일 시작 부분에 다음 라인 추가
:: 관리자 권한으로 실행되는지 확인하고 아니라면 다시 실행
net session >nul 2>&1
if %errorLevel% == 0 (
    goto :start
) else (
    echo 현재 스크립트를 관리자 권한으로 다시 실행합니다..
    echo.
    powershell -command "& {Start-Process -Verb RunAs '%0'}"
    exit /b
)

:start
:: 배치 파일 나머지 부분
echo 이 부분은 관리자 권한으로 실행됩니다.

마치며

Windows에서 batch 배치파일 작성하고 실행하는 기본적인 사용방법에 대해 알아보았습니다. 배치 파일은 Windows 운영 체제와 통합되어 있어 Windows 시스템 설정을 변경하거나 시스템 작업을 수행하는 데 효과적입니다.

하지만 Batch파일은 간단한 자동화 작업에는 적합하지만 복잡한 작업을 처리하기에는 한계가 있어, 복잡한 로직이나 대규모 애플리케이션 개발에는 다른 프로그래밍 언어나 도구가 더 적합할 수 있습니다.

그래도 Batch파일은 간단하게 작성할 수 있으며, 다양한 작업을 자동화하는 데 유용하니 파일 복사, 이동, 삭제 또는 프로그램 실행, 서버 작업 등을 자동으로 처리하고 싶은 경우 좋은 대안이 될 수 있습니다.

관련글

Leave a Comment