Windows 셸의 (foo &>/dev/null &)과 동일

Windows 셸의 (foo &>/dev/null &)과 동일

명령줄에서 특정 응용 프로그램(이라고 부르겠습니다)을 실행하고 싶지만 foo터미널을 잡아서 출력이나 오류 스트림에서 터미널에 정크를 넣는 것을 원하지 않으며 계속해서 유지하고 싶습니다. 해당 터미널을 닫아도 실행 중입니다. Bash에서는 를 사용하여 해당 작업을 수행할 수 있지만 (foo &>/dev/null &)Windows 셸에서는 어떻게 수행할 수 있는지 모르겠습니다. 누군가 나를 도와줄 수 있나요?

답변1

Windows에서 이 작업을 수행하는 방법은 다음과 같습니다.

start /B foo > NUL 2>&1

start명령은 와 유사한 효과로 분리된 프로세스를 시작합니다 &. 이 /B옵션은 start실행 중인 프로그램이 콘솔 응용 프로그램인 경우 새 터미널 창을 열지 못하게 합니다(GUI 응용 프로그램에는 필요하지 않음). 는 >Linux에서와 동일한 의미를 가지며 NULWindows에서는 /dev/null. 에2>&1stderr를 stdout으로 리디렉션하고 모두 NUL.

답변2

직접적으로 동등한 것은 없습니다.

설명한대로여기, 호출자를 차단하지 않는 방식으로 프로그램을 호출하는 것은 start옵션을 사용하여 명령 으로 수행할 수 있습니다 /b. 하지만 이 경우 출력 리디렉션에 대해서는 잘 모르겠습니다. 배치 파일로 래핑해야 할 수도 있습니다.

에 관해서는 > /dev/null쉽습니다: >NUL. NULDOS 장치 이름입니다. 그러나 단축 연산자는 사용할 수 없습니다. 을 사용하여 수동으로 진행해야 합니다 2>&1.여기이에 대한 추가 정보가 있습니다.

관련 정보