배치 파일 내에서 텍스트 파일로 출력 리디렉션
이 자습서에서는 텍스트 파일 내에서 출력을 리디렉션하는 다양한 방법을 설명합니다.
배치 스크립트의 리디렉션 연산자
리디렉션 연산자를 사용하여 배치 파일의 출력을 텍스트 파일로 리디렉션할 수 있습니다. 리디렉션 연산자는 입력을 명령으로 리디렉션하거나 명령의 출력을 리디렉션합니다.
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 파일의 출력을 텍스트 파일로 리디렉션하는 또 다른 방법은 call
및 sub
명령을 사용하는 것입니다. 레이블이 지정된 서브루틴을 호출하는 예는 다음과 같습니다.
@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
출력- ipconfig.txt
:
출력- powercfg.txt
:
여기서 호출 명령은 레이블이 지정된 대로 서브루틴을 호출하는 데 사용됩니다. 먼저 서브루틴 sub_ipconfig
가 호출되고 출력이 ipconfig.txt
라는 파일로 리디렉션됩니다.
그런 다음 두 번째 서브루틴 sub_powercfg
가 호출되고 출력이 powercfg.txt
라는 파일로 리디렉션됩니다. exit /B
명령은 이 라인 다음에 실행을 중지하고 메인 프로그램 실행을 계속합니다.
exit /b
대신 exit
를 사용하면 Batch 파일의 실행이 중지됩니다.
따라서 Batch 파일 내에서 출력을 리디렉션하는 두 가지 방법에 대해 논의했습니다.