윈 도 우 배치파일 명령어 > nul 2>&1 해석
2023.01.11 17:52
cmd.exe /c "program.exe" > "output.txt" 2>&1
이런식으로 뒤에 2>&1 이런 명령어가 보이는데 저게 뭐지? 싶은적이 있어서 찾아봤습니다
리눅스에서 많이 사용하는 명령어 방식인 거 같은데
배치파일에서도 사용이 가능해서 많이들 사용하시는 거 같더라고요
0 : 표준입력(STDIN) : 일반적으로 키보드의 입력
1 : 표준출력(STDOUT) : 일반적으로 Terminal, Console, Shell, Command line 을 의미
2 : 표준에러(STDERR) : 일반적으로 표준출력과 동일
위 세가지는 표준 스트림이라고 하여 운영체제에서 기본적으로 제공하는 추상화된 입출력 장치를 의미.
예제 1)
명령 > nul
명령의 표준출력(1)을 nul로 보냄
nul 이라는 파일이 생성되는 게 아니라 버린다는 의미
예제 2)
명령 2> nul
명령의 표준에러(2)를 nul로 보냄
발생된 에러 메시지만 버리기 때문에 정상 실행 결과는 화면에 출력됨
예제 3)
cmd.exe /c "program.exe" > "output.txt" 2>&1
program.exe 라는 프로그램을 실행시킨 후 결과를 output.txt 파일로 저장하는데
표준에러(2) 까지 파일(output.txt)로 기록하라는 것
정상실행 됐든 에러가 났든 메시지 출력을 파일로 기록하라는 명령
예제 4)
명령 > nul 2>&1
명령의 표준출력(1)을 nul로 버리는데, 표준에러(2)는 표준출력(1)으로 리다이렉션
즉, 표준출력이 전달되는 곳으로 표준에러를 전달하라는 의미
쉽게 말해서 표준출력, 표준에러 다 버려라.
&
백그라운드에서 처리. 화면에 안보이게 처리하라는 의미.
type nul>a
0바이트짜리 a라는 파일 생성
실제 많이 사용하는 관리자권한 실행 명령
reg.exe query "HKU\S-1-5-20" >nul 2>&1 || (PowerShell start -verb runas '%0'& exit)
본문의 내용 중에 맞지 않은 부분은 댓글로 알려주시면 감사하겠습니다.
댓글 [5]
-
집앞의_큰나무 2023.01.12 07:49
-
상발이 2023.01.12 13:19
수고하셨습니다.
-
슈머슈마 2023.01.12 15:14
이렇게 자세한 내용은 첨 보네요 감사합니다.
궁금하긴하나 물어보기도 미안하고 했는데 감사합니다. -
Neutrino 2023.01.12 19:48
에러도 두종류가 있는데
명령 인식불가 에러는 2번 명령 실행과정상 오류는 1번이죠
-
와로 2023.01.15 17:38
출력과 에러를 한꺼번에 표기하냐 따로 하냐 차이
예전에 저도 궁금해서 알아보다 북마크한 포스트입니다 https://blogger.pe.kr/369
핸들(파일디스크립터) 할당 개념이 핵심이었네요
좋은 정보 감사합니다.