Windows에서 C 프로그램을 작성하고 있는데 printf가 print를 명령 행으로 호출하고 다음을 사용하여이 모든 출력을 텍스트 파일로 리디렉션 할 수 있음을 알고 있습니다.
myProgram.exe > mylog.txt
그러나 콘솔에 인쇄 된 출력을보고 텍스트 파일에 모든 로그를 기록하고 싶습니다.
이것을 할 수있는 방법이 있습니까? 로그 파일을 모니터링하기 위해 tail을 사용하려고 생각했습니다.
Windows에서 C 프로그램을 작성하고 있는데 printf가 print를 명령 행으로 호출하고 다음을 사용하여이 모든 출력을 텍스트 파일로 리디렉션 할 수 있음을 알고 있습니다.
myProgram.exe > mylog.txt
그러나 콘솔에 인쇄 된 출력을보고 텍스트 파일에 모든 로그를 기록하고 싶습니다.
이것을 할 수있는 방법이 있습니까? 로그 파일을 모니터링하기 위해 tail을 사용하려고 생각했습니다.
답변:
Windows PowerShell 에는이를 수행 할 수 tee
있는 유닉스 도구의 이름을 딴 도구가 있습니다 .
또는 tee
Windows 용 유닉스 포트가 있습니다 :
Windows에서 내가 생각할 수있는 것은 이것을하는 것입니다.
myProgram.exe > mylog.txt & type mylog.txt
이것은 귀하의 질문에 명령 예제를 기반으로 - 사실 당신이에 출력 추가하고 싶다면 mylog.txt
다음 사용할 것 >>
대신을 >
하지만 type
추가되었다 아니라 무엇을, 전체 로그 파일을 인쇄합니다.
GnuWin32 CoreUtils 를 다운로드하면 Unix 메소드 ( tee
명령)를 사용하여 이를 수행 할 수 있습니다 .
myProgram.exe | tee mylog.txt
그러면 myProgram.exe의 출력이 기록 mylog.txt
되지만 동시에 콘솔에도 표시됩니다. 추가 mylog.txt
만하려는 경우 -a
매개 변수를 tee에 전달할 수 있습니다 .
Visual Studio Code를 사용 하고 거기에서 로그 파일을 열면 로그 파일이 변경 될 때 거의 실시간으로보기를 유지합니다.
방금 OP가 제안한대로 비슷한 요구가 있었고 Tail을 사용했습니다.
>C:\Temp\Commands_Log.txt (
START tail.exe -f C:\Temp\Commands_Log.txt
Some_Commands
Other_Commands
echo.
echo ALL DONE HERE!
echo.
echo IT IS NOW SAFE TO CLOSE THIS WINDOW!
)
"> C : \ Temp \ Commands_Log.txt"는 로그 파일을 작성하고 (괄호) 안에있는 모든 명령의 출력을 추가합니다.
괄호 안의 첫 번째 명령은 Tail을 시작하는 것이며 새 명령 창에서 열립니다.
마지막으로 반향은 익숙하지 않은 사용자가 모든 것이 완료되면 알려줍니다.