Computer >> 컴퓨터 >  >> 소프트웨어 >> 소프트웨어

Windows 명령줄에서 텍스트 파일로 출력 리디렉션

Windows에서 실행하는 명령 또는 일괄 작업의 동작을 기록하고 문제를 해결하는 가장 유용한 방법 중 하나는 출력을 파일로 리디렉션하는 것입니다.

그러나 명령줄 쓰기를 파일로 리디렉션할 수 있는 몇 가지 다른 방법이 있습니다. 선택하는 옵션은 명령 출력을 보는 방법에 따라 다릅니다.

    Windows 명령줄에서 텍스트 파일로 출력 리디렉션

    Windows 명령 프롬프트 출력 작동 방식

    Windows 콘솔(명령 프롬프트)에 명령을 입력하면 해당 명령의 출력이 두 개의 별도 스트림으로 이동합니다.

    • STDOUT :표준 출력은 명령의 표준 응답이 가는 곳입니다. 예를 들어 DIR 명령에 대한 표준 응답은 디렉토리 내의 파일 목록입니다.
    • STDERR :표준 오류는 명령에 문제가 있는 경우 오류 메시지가 표시되는 위치입니다. 예를 들어 디렉토리에 파일이 없는 경우 DIR 명령은 표준 오류 스트림에 "파일을 찾을 수 없음"을 출력합니다.

    이러한 출력 스트림 모두에 대해 출력을 Windows의 파일로 리디렉션할 수 있습니다.

    표준 출력 쓰기를 새 파일로 리디렉션

    명령의 표준 출력을 파일로 리디렉션하는 방법에는 두 가지가 있습니다. 첫 번째는 명령을 실행할 때마다 명령 출력 write를 새 파일로 보내는 것입니다.

    이렇게 하려면 명령 프롬프트를 열고 다음을 입력합니다.

    dir test.exe > myoutput.txt

    > 문자는 콘솔에 STDOUT을 출력하도록 지시합니다. 제공한 이름의 파일로 이동합니다.

    이 명령을 실행하면 파일이 존재하지 않는다는 오류 외에는 명령 창에 응답이 없음을 알 수 있습니다.

    Windows 명령줄에서 텍스트 파일로 출력 리디렉션

    이는 명령에 대한 표준 출력이 myoutput.txt라는 파일로 리디렉션되었기 때문입니다. 이제 파일은 명령을 실행한 동일한 디렉토리에 있습니다. 표준 오류 출력은 여전히 ​​정상적으로 표시됩니다.

    참고 :명령을 실행하기 전에 명령 프롬프트의 활성 디렉토리를 변경하도록 주의하십시오. 이렇게 하면 출력 파일이 저장된 위치를 알 수 있습니다.

    명령 창에 "myoutput.txt"를 입력하여 파일로 이동한 표준 출력을 볼 수 있습니다. 그러면 기본 텍스트 파일 뷰어에서 텍스트 파일이 열립니다. 대부분의 사람들에게 이것은 일반적으로 Notepad.exe입니다.

    Windows 명령줄에서 텍스트 파일로 출력 리디렉션

    다음에 동일한 명령을 실행하면 이전 출력 파일이 삭제됩니다. 최신 명령의 출력으로 새 출력 파일이 다시 생성됩니다.

    표준 출력 쓰기를 동일한 파일로 리디렉션

    같은 파일을 덮어쓰지 않으려면 어떻게 합니까? 또 다른 옵션은> 대신>>을 사용하여 출력 파일로 리디렉션하는 것입니다. 이 예의 경우 다음을 입력합니다.

    dir test.exe >> myoutput.txt

    동일한 출력이 표시됩니다(오류만 해당).

    Windows 명령줄에서 텍스트 파일로 출력 리디렉션

    그러나 이 경우 이 명령은 출력 파일을 덮어쓰는 대신 기존 출력 파일에 새 출력을 추가합니다.

    Windows 명령줄에서 텍스트 파일로 출력 리디렉션

    명령을 실행하고 출력을 파일에 추가할 때마다 기존 파일 끝에 새 표준 출력이 기록됩니다.

    표준 오류를 파일로 리디렉션

    표준 출력 쓰기를 파일로 리디렉션하는 것과 같은 방식으로 표준 오류 스트림을 파일로 출력할 수도 있습니다.

    이렇게 하려면 2>를 추가해야 합니다. 명령 끝에 만들고자 하는 출력 오류 파일이 옵니다.

    이 예에서는 다음 명령을 입력합니다.

    dir test.exe > myoutput.txt 2> output.err

    이것은 표준 출력 스트림을 myoutput.txt로 보내고 표준 오류 스트림을 output.err로 보냅니다. 결과는 콘솔 창에 출력 스트림이 전혀 표시되지 않는다는 것입니다.

    Windows 명령줄에서 텍스트 파일로 출력 리디렉션

    그러나 output.err을 입력하면 오류 메시지를 볼 수 있습니다. . 그러면 기본 텍스트 파일 뷰어에서 파일이 열립니다.

    Windows 명령줄에서 텍스트 파일로 출력 리디렉션

    보시다시피, 명령의 모든 오류 메시지는 오류 파일에 출력됩니다. 표준 출력과 마찬가지로 >>를 사용할 수 있습니다. 대신 이전에 실행한 명령의 오류에 오류를 추가합니다.

    모든 출력 쓰기를 동일한 파일로 리디렉션

    위의 모든 접근 방식은 여러 파일을 생성합니다. 하나의 파일은 표준 출력 스트림용이고 다른 하나는 표준 오류 스트림용입니다.

    이 두 출력을 동일한 파일에 포함하려는 경우에도 그렇게 할 수 있습니다. 이렇게 하려면 다음 명령을 사용하여 모든 출력을 동일한 파일로 리디렉션하기만 하면 됩니다.

    dir test.exe 1> myoutput.txt 2>&1

    이 명령의 작동 방식은 다음과 같습니다.

    • 표준 출력은 출력 번호 1로 식별되는 출력 파일로 지정됩니다.
    • 숫자 2로 식별되는 표준 오류 출력은 숫자 1로 식별되는 출력 파일로 리디렉션됩니다.

    이것은 표준 출력의 끝에 오류 출력을 추가합니다.

    Windows 명령줄에서 텍스트 파일로 출력 리디렉션

    이것은 하나의 파일에서 모든 명령에 대한 모든 출력을 볼 수 있는 유용한 방법입니다.

    표준 또는 오류 출력 스트림 묵음

    출력을 파일 대신 NUL로 리디렉션하여 표준 출력 또는 표준 오류를 끌 수도 있습니다.

    위의 예를 사용하여 표준 출력만 원하고 표준 오류는 전혀 원하지 않는 경우 다음 명령을 사용할 수 있습니다.

    dir test.exe 1> myoutput.txt 2>nul

    이렇게 하면 표준 출력만 리디렉션한 위의 첫 번째 예와 동일한 출력 파일이 생성되지만 이 명령을 사용하면 오류가 콘솔 내부에 에코되지 않습니다. 오류 로그 파일도 생성하지 않습니다.

    이것은 오류에 신경 쓰지 않고 귀찮게 하지 않으려는 경우에 유용합니다.

    BAT 파일 내부에서 위의 동일한 출력 명령을 수행할 수 있으며 해당 줄의 출력은 지정한 출력 파일로 이동합니다. 이것은 BAT 파일 내의 명령이 실행을 시도할 때 오류가 있었는지 여부를 확인하는 유용한 방법입니다.