배치 파일 내에서 실행 해야하는 프로세스가 있습니다. 이 프로세스는 일부 출력을 생성합니다. 이 출력을 화면에 표시 하고 다른 프로그램으로 보내 (파이프)해야합니다.
bash는 방법을 사용합니다 tee
:
echo 'ee' | tee /dev/tty | foo
Windows에 해당하는 것이 있습니까? 필요한 경우 PowerShell을 사용하게되어 기쁩니다.
tee
Windows 용 포트 가 있지만에 해당하는 포트가 없어서 /dev/tty
문제가 복잡합니다.
구체적인 유스 케이스는 다음과 같습니다. 실행 해야하는 프로그램 (launch4j)이 있으며 사용자에게 출력을 표시합니다. 동시에 스크립트에서 성공 또는 실패를 감지 할 수 있어야합니다. 불행히도이 프로그램은 종료 코드를 설정하지 않으므로 강제로 설정할 수 없습니다. 현재 해결 방법은으로 파이핑 find
하여 출력 ( launch4j config.xml | find "Successfully created"
) 을 검색하는 것입니다. 그러나 표시 해야하는 출력을 삼 킵니다. 따라서, 나는 화면에 모두 표시 할 수있는 방법이 필요하고, 명령에 OUPUT을 보내 - 하고 이 명령을 설정 할 수 있어야한다 ERRORLEVEL
(이것은 비동기 적으로 실행할 수 없습니다). 이것은 많은 다른 머신에서 실행될 수있는 빌드 스크립트에서 사용됩니다.
이 특별한 경우에는 가벼운 것이 필요합니다-추가 프레임 워크 또는 인터프리터를 설치할 수 없습니다 (예 : 이 답변 에서 제안 된 perl ). 또한 모든 상용 프로그램에는 재배포를 허용하는 라이센스가 있어야합니다.