Piszę program C w systemie Windows, moje wywołania printf są drukowane w wierszu poleceń i wiem, że mogę przekierować całe to wyjście do pliku tekstowego, używając:
myProgram.exe > mylog.txt
Chciałbym jednak również zobaczyć dane wyjściowe, które zostałyby wydrukowane na konsoli, a także zalogować je wszystkie w pliku tekstowym.
Czy istnieje sposób, aby to zrobić? Myślałem o użyciu ogona do monitorowania pliku dziennika.
windows
command-line
stdout
user79397
źródło
źródło
Odpowiedzi:
Okna PowerShell ma narzędzie, które może to zrobić, nazwane
tee
po narzędziu unixowym, które robi to samo.Alternatywnie istnieją porty unixa
tee
dla Windowsa:źródło
W systemie Windows wszystko, co mogę myśleć, to zrobić:
Jest to oparte na przykładzie polecenia w twoim pytaniu - jeśli w rzeczywistości chcesz dołączyć wyjście do
mylog.txt
wtedy chciałbyś użyć>>
zamiast>
, aletype
wydrukuje cały plik dziennika, a nie tylko to, co zostało dołączone.Jeśli pobierzesz GnuWin32 CoreUtils , możesz użyć metody Unix (
tee
polecenie), aby to zrobić:Spowoduje to zapisanie wyniku myProgram.exe na
mylog.txt
ale jednocześnie wyświetlaj go na konsoli. Jeśli chcesz tylko dołączyć domylog.txt
wtedy możesz przekazać-a
parametr do tee.źródło
używam Kod Visual Studio i otwórz plik dziennika stamtąd, aktualizuje widok w czasie zbliżonym do rzeczywistego, gdy zmienia się plik dziennika
źródło