IT 관리 노하우/PC & 윈도우 & 오피스

자동화 스크립트, DOS Batch 파일과 활용 방법

잌쿠 2024. 11. 22. 00:26

DOS Batch 파일이란?

여러대의 PC를 동일한 환경으로 설정하거나, 반복된 작업을 수행해야할때. 우리는 고민에 빠집니다.
오늘 소개할 DOS Batch 파일은 Windows 운영 체제에서 일련의 명령어를 자동으로 실행할 수 있게 해주는 .bat 확장자를 가진 일종의 명령어 스크립트 파일입니다. 복잡한 작업을 자동화하는 데 매우 유용하여, DOS 명령어에 이어 다루어 볼까 합니다.

Notepad로 저장할때 bat 파일의 확장자로 저장하면 되며, 간단하게 아래와 같이 작성해서 만들어서 구동해 볼 수 있습니다.

(예시) 윈도우 점검 배치 파일
(예시) 윈도우 점검 배치 파일 실행


기본 Batch 명령어

CMD 배치 파일에서 자주 사용되는 고급 명령어는 다음과 같습니다.

 

GOTO 명령어

특정 레이블로 실행 흐름을 이동시킵니다.

:label
echo This is a label
GOTO label

 

IF 조건문

조건에 따라 명령을 실행합니다.

IF "%1"=="param1" (
    ECHO First parameter is "%1"
) ELSE (
    ECHO First parameter is not "param1"
)

 

FOR 루프

파일이나 문자열을 반복 처리합니다.

FOR %%I IN (*.txt) DO echo %%I

 

SET 변수 설정

변수를 설정하고 사용합니다.

SET myvar=Hello
ECHO %myvar%

 

CALL 명령어

다른 배치 파일을 호출합니다.

CALL other_script.bat

 

SHIFT 명령어

명령줄 인수(%1, %2, %3, ...)를 한 단계씩 왼쪽으로 이동시키는 역할을 합니다. 이 명령어를 사용하면 여러 명령줄 인수를 처리할 때 편리하게 사용할 수 있습니다.

@echo off
:loop
if "%1"=="" goto end
echo 현재 인수: %1
SHIFT
goto loop
:end
echo 모든 인수를 처리했습니다.
C:\>example.bat 첫번째 두번째 세번째
현재 인수: 첫번째
현재 인수: 두번째
현재 인수: 세번째
모든 인수를 처리했습니다.

 

ERRORLEVEL 확인

이전 명령의 종료 코드를 확인합니다.

IF ERRORLEVEL 1 ECHO An error occurred

 

파일 존재 여부 확인

IF EXIST filename.txt (
    ECHO File exists
) ELSE (
    ECHO File does not exist
)

메뉴 만드는 방법

 

1. 메뉴 구조 설계

먼저 메인 메뉴와 하위 메뉴 항목들을 설계합니다. 예를 들어:

@echo off
:menu
cls
echo 1. 옵션 1
echo 2. 옵션 2  
echo 3. 종료
set /p choice=선택하세요: 

 

 

2. 사용자 입력 처리

사용자의 선택에 따라 분기 처리를 합니다:

if "%choice%"=="1" goto option1
if "%choice%"=="2" goto option2 
if "%choice%"=="3" goto end
goto menu

 

3. 각 옵션에 대한 처리

선택된 옵션에 대한 작업을 수행하고 메인 메뉴로 돌아갑니다:

:option1
echo 옵션 1을 선택하셨습니다.
pause
goto menu

:option2  
echo 옵션 2를 선택하셨습니다.
pause
goto menu

:end
echo 프로그램을 종료합니다.
exit

 

4. 서브메뉴 구현

필요한 경우 서브메뉴를 추가로 구현할 수 있습니다:

:submenu
cls
echo 1. 서브 옵션 1
echo 2. 서브 옵션 2
echo 3. 메인 메뉴로 돌아가기
set /p subchoice=선택하세요: 

if "%subchoice%"=="1" goto suboption1
if "%subchoice%"=="2" goto suboption2
if "%subchoice%"=="3" goto menu
goto submenu

Batch 파일 예제

 

간단한 인사 프로그램

@echo off
echo 안녕하세요! 당신의 이름은 무엇인가요?
set /p name=
echo 반갑습니다, %name%님!
pause

 

파일 백업 스크립트

@echo off
xcopy C:\중요문서 D:\백업\중요문서 /D /E /Y /I
echo 백업이 완료되었습니다.
pause

 

시스템 점검 스크립트

@echo off
chcp 65001 >nul

:menu
cls
echo Windows 장애 점검 메뉴
echo 1. 디스크 점검
echo 2. 메모리 점검
echo 3. 네트워크 점검
echo 4. 종료

set /p choice=선택하세요 (1-4): 

if "%choice%"=="1" goto disk
if "%choice%"=="2" goto memory
if "%choice%"=="3" goto network
if "%choice%"=="4" goto end

echo 잘못된 선택입니다. 다시 선택해주세요.
pause
goto menu

:disk
echo 디스크 점검을 시작합니다...
chkdsk C: /f
pause
goto menu

:memory
echo 메모리 점검을 시작합니다...
mdsched.exe
echo 메모리 진단 도구가 실행되었습니다. 재부팅 후 진단이 수행됩니다.
pause
goto menu

:network
echo 네트워크 점검을 시작합니다...
ipconfig /all
ping www.google.com
pause
goto menu

:end
echo 프로그램을 종료합니다.
exit

Batch 파일 활용 팁

  • 자동 실행: 작업 스케줄러를 사용하여 Batch 파일을 정기적으로 실행할 수 있습니다.
  • 에러 처리: IF ERRORLEVEL 명령을 사용하여 오류를 처리할 수 있습니다.
  • 변수 사용: SET 명령을 사용하여 변수를 설정하고 %변수명%으로 사용할 수 있습니다.

DOS Batch 파일은 Windows 환경에서 작업을 자동화하는 강력한 도구입니다. 기본 명령어만 알아도 일상적인 작업을 크게 간소화할 수 있으며, 더 복잡한 스크립트를 작성하여 고급 작업도 수행할 수 있습니다. 

아참, 그리고 한글이 깨질때는 인코딩 문제입니다. chcp 65001 >nul 명령을 추가해줘 보세요.