배치 파일 내에서 텍스트 파일로 출력 리디렉션

Siddharth Bishnoi 2023년3월20일
  1. 배치 스크립트의 리디렉션 연산자
  2. 배치 스크립트에서 리디렉션 연산자를 사용하여 출력 리디렉션
  3. 배치 파일 내에서 서브루틴을 호출하여 출력을 텍스트 파일로 리디렉션
배치 파일 내에서 텍스트 파일로 출력 리디렉션

이 자습서에서는 텍스트 파일 내에서 출력을 리디렉션하는 다양한 방법을 설명합니다.

배치 스크립트의 리디렉션 연산자

리디렉션 연산자를 사용하여 배치 파일의 출력을 텍스트 파일로 리디렉션할 수 있습니다. 리디렉션 연산자는 입력을 명령으로 리디렉션하거나 명령의 출력을 리디렉션합니다.

Batch 파일을 실행할 때 명령은 cmd.exe에서 실행됩니다. 이러한 명령의 출력은 표준 출력과 표준 오류의 두 가지 스트림으로 얻습니다.

이러한 출력은 개별 파일 또는 단일 파일로 리디렉션될 수 있습니다.

리디렉션 연산자는 >로 표시됩니다. 기본적으로 cmd는 1>과 같이 표준 출력에 >를 사용합니다.

단, 표준오차는 2>를 사용합니다. 리디렉션 연산자의 기본 구문은 다음과 같습니다.

command > filename

출력을 텍스트 파일로 리디렉션하면 매우 유용할 수 있습니다. 출력 범위가 매우 길거나 일정 시간 간격으로 명령이 실행되는 경우 데이터를 저장해야 합니다.

또한 Batch 파일 실행 중 오류가 발생하면 빈 콘솔 화면과 함께 빠르게 사라집니다. 모든 경우에 출력 및 오류를 텍스트 파일로 리디렉션할 수 있습니다.

Batch 파일을 사용하는 경우 Batch 파일 내에서 출력을 리디렉션하는 것이 좋습니다. 따라서 두 번 클릭하여 실행할 때마다 출력을 리디렉션하므로 명령줄에서 매번 수동으로 수행하는 것보다 낫습니다.

배치 스크립트에서 리디렉션 연산자를 사용하여 출력 리디렉션

전체 Batch 파일 또는 일부의 표준 출력을 리디렉션할 수 있습니다. 또한 표준 출력과 표준 오류는 단일 파일 또는 별도의 파일에 저장할 수 있습니다.

배치 파일 내에서 표준 출력을 텍스트 파일로 리디렉션

표준 출력을 텍스트 파일로 리디렉션하려면 아래 구문에 표시된 대로 명령과 텍스트 파일 사이에 리디렉션 연산자를 추가합니다.

command > filename

예를 들어 powercfg 명령의 출력을 stdoutput.txt라는 텍스트 파일로 리디렉션해야 합니다. 다음 명령은 stdoutput.txt라는 새 파일을 생성합니다.

파일이 이미 있으면 덮어씁니다.

echo "The output will be redirected to a text file"
powercfg /a > stdoutput.txt

테스트 파일 리디렉션

출력:

출력 리디렉션

> 연산자는 Batch 파일을 실행할 때 기존 파일을 새 출력으로 덮어씁니다. 이전 출력을 유지하고 새 출력을 추가하려면 > 대신 >>을 사용하여 동일한 텍스트 파일에 출력을 추가합니다.

echo "The output will be redirected to a text file"
powercfg /a >> stdoutput.txt

테스트 파일 추가

출력:

출력 추가

표준 출력 및 표준 오류를 배치 파일 내에서 별도의 텍스트 파일로 리디렉션

표준 출력(stdout) 및 표준 오류(stderr)를 별도의 텍스트 파일로 리디렉션하려면 아래와 같이 표준 출력에 1>을 사용하고 표준 오류에 2>를 사용하십시오.

@echo off
echo "The output will be redirected to stdoutput.txt"
powercfg /a 1> stdoutput.txt
echo "The errors will be redirected to stderror.txt"
powercfg /energy 2> stderror.txt

테스트 파일을 별도의 파일로 리디렉션

표준 출력:

출력 표준 출력

표준 에러:

출력 표준 오류

배치 파일 내에서 모든 출력을 단일 파일로 리디렉션

파일 이름 뒤에 2>&1을 사용하여 표준 출력과 표준 오류를 단일 파일에 저장할 수 있습니다.

이에 대한 구문은 다음과 같습니다.

@echo off
echo "The output will be redirected to stdoutput.txt"
powercfg /a > stdoutput.txt 2>&1

테스트 파일을 단일 파일로 리디렉션

출력:

단일 파일로 출력 리디렉션

마찬가지로 두 출력을 단일 파일에 추가하려면 위 명령에서 > 대신 >>을 사용합니다.

ifconfig >> output.txt 2>&1

테스트 파일 추가 단일 파일로 리디렉션

출력은 파일에 오류가 없기 때문에 동일합니다.

배치 파일 내에서 서브루틴을 호출하여 출력을 텍스트 파일로 리디렉션

Batch 파일의 출력을 텍스트 파일로 리디렉션하는 또 다른 방법은 callsub 명령을 사용하는 것입니다. 레이블이 지정된 서브루틴을 호출하는 예는 다음과 같습니다.

@echo off
call:sub_ipconfig > ipconfig.txt
call:sub_powercfg > powercfg.txt

GOTO: END

:sub_ipconfig
ipconfig
EXIT /B

:sub_powercfg
powercfg /a
EXIT /B

:END

testfile call sub

출력- ipconfig.txt:

output call sub ipconfig

출력- powercfg.txt:

출력 호출 하위 powercfg

여기서 호출 명령은 레이블이 지정된 대로 서브루틴을 호출하는 데 사용됩니다. 먼저 서브루틴 sub_ipconfig가 호출되고 출력이 ipconfig.txt라는 파일로 리디렉션됩니다.

그런 다음 두 번째 서브루틴 sub_powercfg가 호출되고 출력이 powercfg.txt라는 파일로 리디렉션됩니다. exit /B 명령은 이 라인 다음에 실행을 중지하고 메인 프로그램 실행을 계속합니다.

exit /b 대신 exit를 사용하면 Batch 파일의 실행이 중지됩니다.

따라서 Batch 파일 내에서 출력을 리디렉션하는 두 가지 방법에 대해 논의했습니다.