Befehlszeilenbildschirm teilweise in Datei ausgeben

Befehlszeilenbildschirm teilweise in Datei ausgeben

Ich schreibe eine Protokolldatei für eine Backup-Lösung.

Die Backup-Lösung ist ein einfacher 7-Zip-Update-Befehl.

Ich möchte protokollieren, welche Dateien gesichert werden. Wenn ich >> log.txt verwende, erhalte ich das Ergebnis, aber auch viele andere Informationen, die 7-zip ausgibt und die ich nicht haben möchte.

Ich suche nach einer Möglichkeit, die Bildschirmanzeige teilweise zu protokollieren. Ich habe nichts dagegen, 7z .... >templog.txt zu verwenden und dann etwas mit templog.txt zu machen, bevor ich es an log.txt anhänge. Aber ich weiß auch nicht, wie ich über die Befehlszeile selektiv Zeilen aus templog.txt entfernen kann.

Meine Frage läuft also darauf hinaus: Wie kann ich die ersten 10 Zeilen aus templog.txt entfernen oder alternativ nur einen Teil der Bildschirmausgabe in eine Protokolldatei umleiten?

Bonusfrage: Wie entferne ich selektiv Zeilen aus templog.txt oder der Ausgabeumleitung, die nicht am Anfang stehen?

Antwort1

Wie kann ich die ersten 10 Zeilen aus templog.txt entfernen oder alternativ nur einen Teil der Bildschirmausgabe in eine Protokolldatei umleiten?

Nachfolgend finden Sie ein paar verschiedene Möglichkeiten, um das gewünschte Ergebnis zu erzielen.Auslassen von Zeilen mit bestimmten Zeichenfolgenin ihnen mitFindstroder einfachEntfernen bestimmter ZeilennummernmitSEDaus templog.txt, bevor der Inhalt an die vollständige Protokolldatei von log.txt angehängt wird.


Verwenden von FINDSTR

Dadurch werden die Zeichenfolgen in Anführungszeichen, die in templog.txt enthalten sind, nicht an log.txt angehängt.

FINDSTR /V /I "string1 string2 string3 string4" templog.log>>log.txt

Dadurch werden die regulären Ausdrücke in den Anführungszeichen nach jedem /C:Schalter, die in templog.txt stehen, weggelassen und nicht an log.txt angehängt. Sie müssen also nur sicherstellen, dass Sie alle regulären Ausdrücke haben, die zum Weglassen übereinstimmen müssen.

FINDSTR /V /R /C:"<regex1>" /C:"<regex2>" /C:"<regex3>" templog.log>>log.txt

Verwenden von SED

Dadurch werden die Zeilen 1 bis 10 aus templog.txt entfernt und der Rest anschließend an log.txt angehängt.

sed -i -e "1,10d" templog.txt

Weitere Ressourcen

Antwort2

PowerShell – Entfernen bestimmter Zeilen aus einer Datei

Sie können die folgenden PowerShell-Befehle verwenden, um die ersten fünf Zeilen mit dem -SkipParameter zu überspringen.Objekt auswählenaus dem Inhalt der Datei templog.txt und aktualisieren Sie sie dann mit allem außer den übersprungenen Dateizeilen.

(Get-Content "C:\path\templog.txt" | Select-Object -Skip 5) | Set-Content "C:\path\templog.txt"

Sie können die folgenden PowerShell-Befehle mit dem -SkipParameter verwenden mitObjekt auswählenum die ersten fünf Zeilen von templog.txt zu überspringen und dann alle außer diesen Zeilen an die Datei log.txt anzuhängen.

(Get-Content "C:\path\templog.txt" | Select-Object -Skip 5) | Add-Content "C:\path\log.txt"

Weitere Ressourcen

verwandte Informationen