Batch 파일 기초와 중급 반복문 활용: 프로그램 실행 및 트러블슈팅

Mia Morgan·2024년 10월 4일
0

폴더 안의 파일 리스트 보기

@echo off
dir
pause
  • dir: 현재 폴더에 있는 파일 및 폴더 목록을 보여줍니다.
  • pause: 명령어 실행 후, 창이 닫히지 않고 사용자 입력을 기다립니다.

사용자 입력받기

@echo off
set /p name=이름을 입력하세요: 
echo 안녕하세요, %name%님!
pause
  • set /p 변수명=메시지: 사용자 입력을 받아 변수에 저장합니다.

한글 깨짐 문제 해결

배치 파일에서 한글이 깨지는 문제는 인코딩 때문입니다. 이를 해결하려면 UTF-8로 코드페이지를 설정하고, 파일을 UTF-8 인코딩으로 저장해야 합니다.

@echo off
chcp 65001
echo 현재 폴더에 있는 파일들:
dir
echo 메모장을 엽니다.
start notepad
pause
  • chcp 65001: UTF-8 코드페이지로 변경합니다.
  • 파일을 저장할 때 UTF-8 인코딩으로 저장합니다.

변수 사용하기

@echo off
set name=ChatGPT
echo Hello, %name%!
pause
  • set 변수명=값: 변수를 선언하고 값을 저장합니다.
  • %변수명%: 변수를 호출할 때는 %로 감싸서 사용합니다.

조건문 (if문)

@echo off
set /p num=숫자를 입력하세요: 
if %num%==10 (
    echo 숫자가 10입니다!
) else (
    echo 숫자가 10이 아닙니다!
)
pause
  • if %변수명%==값: 조건에 따라 명령어를 실행합니다.
  • else: 조건이 맞지 않을 때 실행할 명령어를 지정합니다.

반복문 (for문)

@echo off
for %%f in (*.txt) do (
    echo 파일 이름: %%f
)
pause
  • for %%변수 in (목록) do (명령어): 목록에 있는 항목들을 하나씩 처리합니다.
  • %%f: 반복할 때마다 목록에서 하나씩 가져와 처리하는 임시 변수입니다.

변수 사용 시 주의사항

  • 배치 파일 안에서 for 문을 사용할 때는 변수 앞에 %%를 두 번 사용해야 합니다.
    • 배치 파일 내: for %%f in (...) do
    • 명령 프롬프트(CMD): for %f in (...) do
  • 이 차이는 명령어 해석 방식에 따른 규칙으로, for 문에서만 적용됩니다.

실행 흐름 제어 (goto)

@echo off
set /p answer=계속할까요? (yes/no): 

if %answer%==yes goto continue
if %answer%==no goto end

:continue
echo 계속 진행합니다!
pause
goto end

:end
echo 프로그램을 종료합니다.
pause
  • goto 레이블: 지정한 레이블로 이동합니다.
  • :레이블명: 이동할 레이블을 설정합니다.

파일 및 폴더 작업

@echo off
echo 파일을 복사합니다.
copy source.txt destination.txt

echo 폴더를 생성합니다.
mkdir MyFolder

echo 폴더를 삭제합니다.
rmdir /s /q MyFolder

pause
  • copy 파일1 파일2: 파일을 복사합니다.
  • mkdir 폴더명: 폴더를 생성합니다.
  • rmdir /s /q 폴더명: 폴더와 그 안의 내용을 삭제합니다.
profile
Back-end developer in the making.

0개의 댓글