it-swarm.com.de

Windows: Befehlszeilenumleitung in eine Textdatei bei gleichzeitiger Anzeige der Ausgabe

Ich schreibe ein C-Programm in Windows, meine printf-Aufrufe drucken in die Befehlszeile und ich weiß, dass ich all diese Ausgaben in eine Textdatei umleiten kann, indem ich Folgendes verwende:

myProgram.exe > mylog.txt

Ich möchte jedoch auch die Ausgabe sehen, die auf der Konsole gedruckt worden wäre, sowie alles in einer Textdatei protokollieren.

Gibt es eine Möglichkeit, dies zu tun? Ich überlegte, Schwanz zu verwenden, um die Protokolldatei zu überwachen.

27
user79397

Das Windows PowerShell hat ein Tool, das das kann, benannt nach tee das Unix-Tool, das das gleiche tut.

Alternativ gibt es Ports des Unix tee für Windows:

17
lesmana

Unter Windows kann ich mir nur Folgendes vorstellen:

myProgram.exe > mylog.txt & type mylog.txt

Dies basiert auf dem Befehlsbeispiel in Ihrer Frage. Wenn Sie die Ausgabe tatsächlich an mylog.txt anhängen möchten, möchten Sie >> anstelle von > verwenden, aber type druckt die gesamte Protokolldatei aus, nicht nur die angehängte .

Wenn Sie die GnuWin32-CoreUtils herunterladen, können Sie dazu die Unix-Methode (tee-Befehl) verwenden:

myProgram.exe | tee mylog.txt

Dadurch wird die Ausgabe von myProgram.exe in mylog.txt geschrieben und gleichzeitig auf der Konsole angezeigt. Wenn Sie nur an mylog.txt anhängen möchten, können Sie den Parameter -a an tee übergeben.

7
Gaff

Ich verwende Visual Studio-Code und öffne die Protokolldatei von dort aus. Dadurch wird die Ansicht nahezu in Echtzeit aktualisiert, wenn sich die Protokolldatei ändert

0
Jaime Botero

Ich hatte gerade ein ähnliches Bedürfnis und benutzte Tail, wie es das OP vorschlug:

>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!
)

Das "> C:\Temp\Commands_Log.txt" erstellt die Protokolldatei und fügt die Ausgabe aller Befehle in (Klammern) hinzu.

Der erste Befehl in den Klammern sollte sein, den Schwanz zu starten, der in einem neuen Befehlsfenster geöffnet wird.

Die Echos am Ende sind für unbekannte Benutzer gedacht, um sie zu informieren, wenn alles vollständig ist.

0
DBADon