2014-06-07 3 views
2

어떻게 CMD 창에서 출력을 방지합니까? 나는이배치의 명령 출력 방지

@echo 오프

시간 제한/위해 그것을 할 방법을 알고 t 3/nobreak> NUL

MKDIR 파일 2> NUL

하지만 일반적인 방법에 대해 무엇인지 궁금 해서요 모든 명령 또는 각 명령을 찾는 방법을 묻지 않아도됩니다. 자동으로 XCopy를 복사하려고합니다. 화면이 스팸으로 표시되지 않지만 다른 명령에도 필요합니다.

답변

0

"일반적인 방법"은 을 사용하여 표준 출력을 nul으로 리디렉션하는 것과 같습니다. 항상 각 행의 마지막 부분이어야합니다.

(당신이 리디렉션을 표준 오류 (2>nul 대신에 표준 출력을 사용중인 mkdir 예;. 나는 그것이 그 일을 할 이유를 모르겠어요,하지만이 완료되고 왜 당신이 알고 아마도)

문제 그렇게함으로써, 당신은 무엇이 효과적이었고 어떤 것이 실패했는지에 대한 어떠한 정보도 얻지 못하기 때문에 문제를 추적하기가 어렵습니다. 정보를 화면에 표시 할 필요가 없지만 나중에 필요할 때 사용할 수있게하려는 경우 대신 파일로 리디렉션

REM Redirect first command to log, truncating anything 
REM that existed in the file before. 
mkdir Files > temp.log 

REM Copy some files into the folder just created, appending 
REM the results to the same log file 
xcopy *.txt Files\ >> temp.log 
+0

>와 >>의 차이점은 무엇입니까? – user3717248

+0

'>'는 기존 파일을 잘라내고,'>>'는 이미 존재하는 파일을 추가합니다. 두 파일 모두 이미 존재하지 않으면 파일을 생성하지만,'>>'는 기존 내용의 끝에 텍스트를 추가합니다. –

2

출력 스트림이 2 개 있습니다. s : stdout (표준 출력 콘솔) 및 stderr (표준 오류 콘솔). >nul 이상의 정확한 1>nul 표준 출력에 기록 된 텍스트로

귀무 장치로 리디렉션된다.

2>nulstderr에 쓰여진 텍스트는 null 장치로 리디렉션됩니다.

>nul2>nul은 모든 명령에서 사용할 수 있으며 동시에 둘 다 사용할 수 있으며 항상 줄 끝 부분에 있어야합니다. 일부 특수한 경우에는 시작 부분에서 사용할 수도 있지만 대부분 리디렉션 연산자는 줄 끝 부분에 작성됩니다.

대부분의 콘솔 명령과 응용 프로그램은 /? (Windows) 또는 -? (Unix에서 이식 된 경우) 옵션으로 실행하면 도움말을 인쇄합니다. 명령 프롬프트 창을 열고 xcopy /?

XCOPY 같은 일부 명령은 표준 출력 출력을 억제하는 특수 옵션을 가지고하려고합니다. xcopy의 옵션은 이며 의 경우는입니다. 이 옵션을 사용하면 출력을 표준 출력으로 인쇄 할 때 출력이 null 장치로 리디렉션되는 경우 시간이 필요하며 물론 낭비됩니다.

그러나 모든 출력을 Null 디바이스로 리디렉션 할 때 오류가 발생할 경우 중단 될 수 있습니다.예를 들어 xcopy을 사용하는 경우 오류가 발생하면 복사 프로세스가 중단되지 않도록 대상 디렉토리의 읽기 전용 파일을 피하기 위해 /C/R 옵션을 추가로 사용해야합니다. /Q 및 추가 >nul 2>nul을 사용했기 때문에 완료되지 않았습니다.

항상 배치 파일에서 >nul을 사용해야하며 종종 가능하지는 않지만 1>nul으로 지정해야합니다. 명령 행 인터프리터는 일괄 파일 실행시 자동으로 >nul 1>nul (공백 + 1>nul)으로 바꿉니다. 을 파일에 넣으면 파일로 리디렉션되는 각 줄에서 자주 원하지 않는 후행 공백을 피할 수 있습니다.

자세한 내용은 Microsoft 문서 Using command redirection operators을 참조하십시오.