Ich schrieb ein Powershell-Skript, sucht nach einer Zeichenfolge (z. B. Fehler) in Protokolldateien und greift diese Zeilen und gibt diese Zeilen in eine Datei, zum einfacheren Lesen und dergleichen (die Industrie, in der ich bin, hat sehr große Protokolldateien), aber ich habe ein Problem. Früher, als die (relevanten) Teil des Codes sah wie folgt aus:
Select-Objekt Ausgabe von Select-String Powershell
Select-String -Path "$file" -Pattern "$string" -CaseSensitive | Out-File -filepath $filepath
Es würde die Ausgabe der Dateipfad, die Zeilennummer, und dann die eigentliche Linie, für eine sehr unübersichtlich Datei zu machen. Nun, ich brauchte nur die Zeile und die Zeilennummer, also tat ich dies:
Select-String -Path "$file" -Pattern "$string" -CaseSensitive | Select-Object -Property LineNumber,Line | Out-File -filepath $filepath
Welche Linien aussehen wie diese zurückkehren würde:
978 2017-07-10 10:46:11,288 ERROR [Music...
Das ist die Zeilennummer ist dann die Zeile, mit die Zeile hat nur 35 Zeichen.
Bevor ich Select-String
an Select-Object
piped, würde das Skript die gesamte Zeile ausgeben, aber jetzt mit Select-Object
es einige Ausgaben ausgelassen. Ich versuchte -verbose
Parameter zu Select-String
und Select-Object
hinzuzufügen, aber das tat nichts.
Das ist genial! Das Screen-Puffer-Ding kam mir nicht in den Sinn, und ich werde versuchen, es zu erweitern, aber schreibe es jetzt in eine Tabelle und lege die Worte zusammen! Vielen Dank! –