2008-11-10 4 views
1

다양한 작업을 수행하는 명령 줄 (창)에서 실행중인 PHP 스크립트가 있는데이 출력은 ' print '문을 화면에 직접 출력합니다.Windows CMD를 통해 작업 출력 캡처 및 표시 방법

내가 원하는 것은 이것을 로그 파일에도 캡처하는 것입니다.

php-cli script.php > log.txt 

그러나이 방법의 문제는 모든 출력이 로그 파일에 기록되어 있지만 상황이 평균 시간에 실행 어떻게 (볼 수 없습니다 :

나는 내가 할 수있는 알고 그래서 dodgy가 일어나면 프로세스를 멈출 수 있습니다.)

다른 가능한 질문을 선점하기 위해 인쇄물이 너무 많아서 모든 인쇄물을 로그 문구로 변경할 수는 없으며 코드에서 아무 것도 변경하지 않기를 바랍니다. 가는 fubar. 게다가 시간 측면도 부족합니다. Windows 머신에서도 실행해야합니다. 사전 :)에서

감사

편집 : 그 설정하는 가장 쉽고 빠른 때문에 답변들 주셔서 감사합니다, 결국 나는 확신하지만, 실제 응답이 브라우저 방법으로 갔다 어딘가에이 문제에.

답변

1

나는 항상 내 웹 브라우저에서 로그 파일을 열었습니다. 이렇게하면 쉽게 새로 고칠 수 있으며 Windows가 수행하는 파일에 대한 쓰기가 중단되지 않습니다. 특히 우아하지는 않지만 작동합니다! 느린

+1

"tail"명령을 사용할 수도 있습니다 (mtail과 같은 여러 Windows 버전이 있습니다). 수동 리프레시가 필요합니다. – Jay

3

명령을 실행하는 powershell 스크립트를 만들 수 있으며 명령의 STDOUT에서 데이터를 읽은 다음 출력을 로그 파일과 터미널로 출력하여 볼 수 있습니다. Write-Output 및 Write-Host 명령을 사용할 수 있습니다.

마이크로 소프트의 사이트 : http://www.microsoft.com/technet/scriptcenter/topics/msh/cmdlets/tee-object.mspx

또 다른 옵션은 사용이 입력을 읽고 두 개의 서로 다른 출력으로 전환하는 티 프로그램을 찾을 수있을 것이다. 나는 창문에서 이것들을 본 것으로 믿지만 나는 그것이 표준이라고 생각하지 않는다.

위키 백과 : http://en.wikipedia.org/wiki/Tee_(command)

+1

실제로 powershell에는 이미 "tee"가 포함되어 있기 때문에 powershell 스크립트를 작성할 필요가 없습니다 .-) – Jay

0

:

for /f "delims=" %a in ('php-cli script.php') do @echo %a&echo %a>>log.txt 

또는 배치 파일은 :

for /f "delims=" %%a in ('php-cli script.php') do @echo %%a&echo %%a>>log.txt 
1

당신은 Windows 용 "티"명령을 할 수 있습니다.

또한이 될 수 implemented in VBScript 당신 같은 경우 http://en.wikipedia.org/wiki/Tee_(command)

PowerShell을 티 명령을 포함하고 티의 다양한 버전 예를 들어, 사용 가능한 Windows 용도있다 참조 취하다.

편집 : 나에게도 발생했습니다. tail 명령 : http://en.wikipedia.org/wiki/Tail_(Unix)도 언급해야합니다.Tail을 사용하면 파일의 마지막 줄인 N을 읽을 수 있으며 파일의 끝 부분을 실시간으로 계속 표시하는 "파일 모니터"모드도 포함됩니다. 로그에 기록하는 프로세스를 방해하지 않고 실시간으로 로그를 볼 수 있으므로 로그 파일 모니터링에 적합합니다. 명령 줄과 GUI 기반의 Windows 용 꼬리의 구현이 몇 가지 있습니다. Microsoft의 Services for UNIX 패키지 (또는 현재 사용중인 패키지)에는 꼬리 버전이 포함되어 있습니다. 몇 가지 예 : 이들 중 일부는 업데이트 및 이메일 경고를 보낼 수있는 단지 실시간으로 파일을 표시 넘어 멀리 갈

문자열 일치를 색칠하고, 동시에 여러 파일을 모니터링하십시오.

관련 문제