Jump to content

BNils

Abgemeldet
  • Gesamte Inhalte

    15
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von BNils

  1. Super, das klappt einwandfrei :) Danke Gruß Nils
  2. Hi zahni, ich möchte am ende nicht True oder False raus haben, sondern als Ausgabe möchte ich genau das Wort dazischen haben... Gruß Nils
  3. Hallo, ich habe mal wieder ein Problem mit meiner Logfile und der Windows Powershell Und zwar steht z.B. sowas in der log: beliebig viele Zeichen 'WORT' beliebig viele Zeichen Und ich möchte nur das Wort haben. Bin irgendwie gerade zu doof oder zu müde. Gruß Nils
  4. Ja ich habe deinen Quellcode kopiert. Es gibt aber noch ein anderes Problem mit Get-Content. Es fängt immer wieder von oben an die letzte Zeile zu suchen, also dauert es bei langen log files lange bis er unten angekommen ist und es fehlen dann halt zeilen, die zwischen durch eingefügt wurden. Hast du eine Idee, wie ich das mit tail.exe -f -1 lofgile hinebkommen könnte? Gruß nils
  5. Ich habe nun ein wenig mit der tail.exe rumgespielt... tail hat ja das -f um die File auf neue Zeilen zu überprüfen, das Problem ist nur, das ich wirklich nur die letzte Zeile brauche. Unter linux klappt das mit tail -1 -f file, leider klappt das unter Windows nicht :( Fehler: TAIL: can't open -f Gibt es da einen Trick? Gruß nils
  6. Das funktioniert nicht, er sagt immer noch das der Prozess von einem anderen Programm geöffnet ist... Hast du noch eine idee :) Gruß Nils EDIT: Ich habe das ganze nun mi tail.exe aus dem Windows Resource Kit gelöst... das funktioniert super :) Trotzdem danke
  7. Genau das ist nun das Problem :( Aber vielen dank, für die Idee! Gruß Nils
  8. Danke, wenn ich das so mache, erkennt er das erste Quit nur, wenn die .log komplett leer ist und dann die quit zeile hinzufüge. Quit gefunden kommt dann noch ein quit in die 2te Zeile, ist das die ausgabe... Quit nicht gefunden Quit nicht gefunden Quit nicht gefunden Warum 3 mal und nicht gefunden verstehe ich nicht... Gruß Nils EDIT: Ich glaube das % bzw $_ wird nicht geleert während das Programm läuft, deswegen verdoppelt sich die ausgabe! Aber wie leert man das zur Laufzeit?
  9. wenn ich das in eine *.ps1 rein mache, das ausführe und dann per script in die log file reinschreibe, passiert nichts. if (Get-Content -Path "C:\Program Files\TEST\Log\test.log" -wait |? {$_ -match "Quit"}) { "Quit gefunden" | Write-Output } else { "nichts gefunden" | Write-Output } Gehe ich das ganze Problem eventuell falsch an? Hier noch mal mein Problem. Ich habe ein file.log, in der ständig der Status einen Programms reingeschrieben wird. Da einige Fehler auftreten können (werden mit z.B.: Quit in der .log dokumentiert), möchte ich quasi in Echtzeit neue Zeile in der .log auswärten. Tritt kein Quit auf, wartet er einfach auf die nächste Zeile. Tritt aber ein Quit auf, muss er einige Befehle ausführen um das Programm neu zustarten! Gruß Nils
  10. Hallo, ich habe mal wieder ein Problem mit einer .log file :) Und zwar wollte ich die .log durchgehend mit Get-Content und dem Parameter -Wait auslesen und wenn dann ein bestimmtes Wort auftaucht (z.B.: Quit) soll et etwas machen... Leider funktioniert das mit -match nicht. Get-Content -Path "C:\...\file.log" -Wait -match "Quit" Ich weiß, so kann es auch nicht gehen, weil -match kein Parameter von Get-Content ist, aber irgendwie komme ich auf keine andere Idee. Ich hoffe ihr könnt mir helfen! Gruß Nils EDIT1: Ich habe eine Lösung gefunden... Get-Content -Path "C:\...\file.log -Wait | Select-String -pattern "Quit" EDIT2: Irgendwie klappt das in einer If Abfrage überhaupt nicht... er macht einfach nichts! Wie mache ich das am geschicktesten?
  11. Das ist super, dann habe ich eine Pipe weniger :) Danke @Dukel EDIT: Kann es sein, das er mit -last trotzdem vorne anfängt und jede Zeile durchläft bis er bei der letzten ist? Kann man das anders machen, weil es dauert bei meiner log (80.000 Zeilen) lange bis er bei der letzten Zeile ist!
  12. Schade, aber vielleicht ja jemand anders... Den LogParser schaue ich mir mal an Danke EDIT: Habe die Lösung gefunden, um nur die letzte Zeile auszulesen (überspringt leere Zeilen): Get-Content c:\scripts\test.log | Select-Object -last 1
  13. Okay, das habe ich vergessen :) Also es geht um die Windows PowerShell. Die Log file kann mehr als 80.000 Zeilen haben, je nach dem wann der Fehler auftritt. Im Moment Prüfe ich immer ob der Service Status auf Running steht und wenn nicht starte ich ihn. Manchmal passiert es aber, das der Service auf Running steht, aber durch ein Fehler der Service nicht mehr richtig arbeitet, in dem Fall taucht in einer Zeile ein quit auf. Danach passiert dann ncihts mehr in der log. Und in dem Fall möchte ich den service halt neustarten. Gruß Nils EDIT: Das einzige was mir so einviel, war mit folgendem Code die Zeilen zu zählen... aber das dauert eigentlich etwas zu lange... desshalb habe ich den ansatz nicht weiter verfolgt. function getZeile ($zeile) { $datei = Get-content "C:\Program Files\Service1\service.log" $a = 0 $datei | Foreach-Object { $a++} return $a }
  14. Hallo, ein schönes Forum habt ihr hier :) Ich habe ein Problem und zwar möchte ich aus einer textdatei (endung .log) nur die letzte Zeile auslesen und in dieser Zeile nach einem Wort suchen (z.B. quit). Wie kann ich das anstellen? Gruß Nils
×
×
  • Neu erstellen...