Zum Inhalt wechseln


Foto

Textdatei überprüfen


  • Bitte melde dich an um zu Antworten
10 Antworten in diesem Thema

#1 Peterzz

Peterzz

    Junior Member

  • 148 Beiträge

 

Geschrieben 12. Dezember 2016 - 09:19

Hallo,

ich habe eine Applikation die in einer Textdatei mitprotokolliert was sie gerade macht.

Ca. alle 10 Minuten schreibt die Applikation in die Textdatei eine Zeile die wie folgt aussieht "Datum  Uhrzeit: Immer_der_gleiche_Text"

 

Ich hätte nun gerne eine Information darüber, wenn die Zeitspanne zwischen zwei Einträgen in der Textdatei mit dem Text (Immer_der_gleiche_Text) größer als 10 Minuten ist.

 

Hat jemand eine Idee wie man das bewerkstelligen könnte?

 

Gruß Peter



#2 BOfH_666

BOfH_666

    Junior Member

  • 78 Beiträge

 

Geschrieben 12. Dezember 2016 - 10:00

Du könntest mittels Powershell den Inhalt einlesen, die Zeilen entsprechend parsen, Datum und Uhrzeit in Powershell-Objekte umwandeln und diese dann vergleichen.



#3 blub

blub

    Moderator

  • 7.601 Beiträge

 

Geschrieben 12. Dezember 2016 - 12:49

Bevor der Schreibvorgang erfolgt, baust du sowas in dein Script ein

 

if

  ($now - file.lastmodifieddate) > 10mins

  write2logfile "$now waren es mehr als 10 Minuten"

end if


Ein Kluger bemerkt alles, Ein Dummer macht über alles eine Bemerkung. (Heinrich Heine)


#4 Dukel

Dukel

    Board Veteran

  • 8.985 Beiträge

 

Geschrieben 12. Dezember 2016 - 13:42

Hast du ein Monitoring, welches Fileinhalte auswerten kann?


Stop making stupid people famous.


#5 Peterzz

Peterzz

    Junior Member

  • 148 Beiträge

 

Geschrieben 13. Dezember 2016 - 16:02

Danke für die Anregungen

Hast du ein Monitoring, welches Fileinhalte auswerten kann?

Ich habe ein Monitoringsystem, das aber die Anforderung nicht erfüllen kann.



#6 BOfH_666

BOfH_666

    Junior Member

  • 78 Beiträge

 

Geschrieben 13. Dezember 2016 - 18:52

 .... hhmmm ... und wie bewerkstelligst Du nun diese Aufgabe? Wir sind neugierig.   ;)  :rolleyes:   ...  oder gibst Du einfach auf?  :confused:  :schreck:



#7 Winnie75

Winnie75

    Newbie

  • 16 Beiträge

 

Geschrieben 14. Dezember 2016 - 07:14

Willst Du innerhalb der gesamten Textdatei alle Einträge wissen, deren aufeinanderfolgender Zeitstempel mehr als 10 Minuten auseinander liegt oder möchtest Du wissen, ob diese Zeitdifferenz zwischen letzten beiden Einträgen größer 10 Minuten ist?



#8 Peterzz

Peterzz

    Junior Member

  • 148 Beiträge

 

Geschrieben 14. Dezember 2016 - 08:26

... und wie bewerkstelligst Du nun diese Aufgabe...

Ich bin leider etwas im Stress (und das in der Vorweihnachtszeit), sodass ich dieses Thema leider etwas nach hinten schieben muss :-(

 

Willst Du innerhalb der gesamten Textdatei alle Einträge wissen, deren aufeinanderfolgender Zeitstempel mehr als 10 Minuten auseinander liegt oder möchtest Du wissen, ob diese Zeitdifferenz zwischen letzten beiden Einträgen größer 10 Minuten ist?

 

In der Textdatei stehen viele Einträge mit unterschiedlichen Informationen. Eine spezielle Information (Immer_der_gleiche_Text) kommt über den Tag in der Datei häufig vor und wenn die Zeitspanne zwischen den Einträgen (Immer_der_gleiche_Text)  > 10 Mnuten ist, dann hätte ich gerne eine Information darüber. 



#9 MurdocX

MurdocX

    Member

  • 272 Beiträge

 

Geschrieben 14. Dezember 2016 - 11:33

Ich möchte heute eine gute Tat tun und zugegeben es war eine kleine Herausforderung.. bin auch gerade krank. Hier ist die Lösung:


##
# Jan Weis - Zeitintervallmessung von 10 Minuten einer Datei
# v0.1 - 14.12.2016
#

# INIT-VARIABLEN
[Bool]$Exit = $false
[String]$FILE = "C:\Users\XXX\Desktop\Neues Textdokument (2).txt"

# Werte abrufen
[DateTime]$objTempWriteTime = ( Get-Item -Path $FILE | Select-Object -ExpandProperty LastWriteTime )

while ($Exit -eq $false)
{
  # Werte abrufen
  [DateTime]$objLastWriteTime = ( Get-Item -Path $FILE | Select-Object -ExpandProperty LastWriteTime )
  
  # Prüfe, ob die Datei aktualisiert wurde
  if ($objLastWriteTime -ne $objTempWriteTime)
  {
    $objTempWriteTime = $objLastWriteTime
  }
  Else
  {
    # Auswertung
    if ( ($objLastWriteTime.AddMinutes(10).TimeOfDay) -lt ((get-date).TimeOfDay) )
    {
      # Letzte Aktualisierung ist MEHR ALS 10 Min her
      Write-Host "`nLetzte Aktualisierung ist $objLastWriteTime durchgeführt worden!"
      #$Exit = $true
    }
    Else
    {
      # Letzte Aktualisierung ist WENIGER ALS 10 Min her
      Write-Host '.' -NoNewline
    }
  }

  # Warte 10 Sekunden
  Start-Sleep -Seconds 10
}

Bearbeitet von MurdocX, 14. Dezember 2016 - 11:34.

MCSA


#10 MurdocX

MurdocX

    Member

  • 272 Beiträge

 

Geschrieben 15. Dezember 2016 - 08:18

Dieses Skript misst nicht den Intervall verschiedener Texteinträge sondern die Zeit in der die Datei verändert wird. Nun kannst du dir das ja noch entsprechend anpassen.

MCSA


#11 Peterzz

Peterzz

    Junior Member

  • 148 Beiträge

 

Geschrieben 15. Dezember 2016 - 11:53

Vielen Dank MurdocX :D  :jau:und gute Besserung!