명령 프롬프트에서 오류 메시지 리디렉션: STDERR/STDOUT

이 문서에서는 명령 프롬프트에서 오류 메시지를 리디렉션하는 것에 대해 설명합니다.

원래 제품 버전: Visual C++
원본 KB 번호: 110930

요약

기호를 사용하여 애플리케이션에서 출력을 리디렉션할 > 때 오류 메시지가 여전히 화면에 출력됩니다. 이는 오류 메시지가 표준 출력 스트림 대신 표준 오류 스트림으로 전송되는 경우가 많기 때문입니다.

콘솔(명령 프롬프트) 애플리케이션 또는 명령의 출력은 종종 두 개의 개별 스트림으로 전송됩니다. 일반 출력이 표준 출력(STDOUT)으로 전송되고 오류 메시지가 STDERR(표준 오류)로 전송됩니다. 기호를 사용하여 콘솔 출력을 > 리디렉션하는 경우 STDOUT만 리디렉션합니다. STDERR을 리디렉션하려면 리디렉션 기호를 지정 2> 해야 합니다. 그러면 STDERR인 두 번째 출력 스트림이 선택됩니다.

예제

명령 dir file.xxx (file.xxx 존재하지 않는 경우)에는 다음 출력이 표시됩니다.

F 드라이브의 볼륨은 캔디 지팡이 볼륨 일련 번호는 34EC-0876입니다.
파일을 찾을 수 없음

를 사용하여 출력을 NUL 디바이스로 dir file.xxx > nul리디렉션하는 경우에도 오류 메시지가 표시됩니다.

파일을 찾을 수 없음

오류 메시지를 NUL로 리디렉션하려면 다음 명령을 사용합니다.

dir file.xxx 2> nul

또는 출력을 한 위치로 리디렉션하고 오류를 다른 위치로 리디렉션할 수 있습니다.

dir file.xxx > output.msg 2> output.err

명령을 사용하여 &1 STDERR의 출력을 STDOUT으로 리디렉션한 다음 STDOUT에서 파일로 출력을 전송하여 오류 및 표준 출력을 단일 파일에 인쇄할 수 있습니다.

dir file.xxx 1> output.msg 2>&1