enno13
Goto Top

Daten aus einer Textdatei löschen die älter als 24 Stunden sind

Hallo zusammen

Ich möchte gerne das alle was über 24 Stunden in einer Textdatei ist gelöscht wird. Name der Textdatei: Auswertung.txt
Ich erzeuge mit einem Programm eine Textdatei. Da werden in sporadischen Abständen Sachen rein geschrieben, unter andem auch ein Zeitstempel: ( 20150901_045221 )
siehe Beispiel: steht ziemlich in der mitte

1_465_C01_065, 1065557010211022, 20150901_045221, P7,M02,2421,SP_42,outOfLimit,Serie
1_465_C01_065, 1065557010212021, 20150901_045346, P2,M02,2411,SP_43,outOfLimit,Serie
1_465_C01_068, 1068557010185062, 20150901_053521, P2,M06,6812,SP_42,inTolerance,Serie
1_465_C01_068, 1068557010190061, 20150901_055459, P9,M06,6882,SP_43,inTolerance,Serie

Jetzt möchte ich , das jede Zeile die älter als 24 Stunden ist gelöscht wird.
also ist das immer die erste die Oben steht, weil das immer die älteste drin steht.
Die neuen Dateien die kommen werden unten dazugefügt.

Gibt es eine Möglichkeit mit einer Batch oder etwas ähnlichen der mir das automatisch macht.
Danke

Content-Key: 283125

Url: https://administrator.de/contentid/283125

Printed on: April 24, 2024 at 00:04 o'clock

Mitglied: 114757
114757 Sep 17, 2015 updated at 07:15:31 (UTC)
Goto Top
Moin,
mit Powershell kein Problem:
$path = 'c:\Auswertung.txt'  
(gc $path) | ?{(Get-Date ($_ -replace '.*,\s*(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2}),.*','$3.$2.$1 $4:$5:$6')) -ge (get-date).AddHours(-24)} | set-content $path  
Gruß jodel32
Member: Enno13
Enno13 Sep 17, 2015 updated at 07:01:37 (UTC)
Goto Top
Hallo

Habe es gerade in Powershell eingegeben , aber er läuft nicht, oder besser er löscht nix.

Nach der Korrektur läuft es, super danke
Mitglied: 114757
114757 Sep 17, 2015 updated at 07:01:15 (UTC)
Goto Top
Zitat von @Enno13:
Habe es gerade in Powershell eingegeben , aber er läuft nicht, oder besser er löscht nix
Ich hatte es kurz vor deiner Antwort noch nachkorrigiert.
Läuft hier perfekt ...
Member: Enno13
Enno13 Sep 17, 2015 at 07:02:36 (UTC)
Goto Top
DANKE es Läuft
Super. und die Steuer ich dann einfach jede Stunde mit einer Batch an das sie ausgefürt wird.
Mitglied: 114757
114757 Sep 17, 2015 at 07:03:34 (UTC)
Goto Top
Zitat von @Enno13:

DANKE es Läuft
Super. und die Steuer ich dann einfach jede Stunde mit einer Batch an das sie ausgefürt wird.
Wenn du willst lässt sich das auch direkt in eine Batch einbauen...
Mitglied: 114757
114757 Sep 17, 2015 updated at 07:08:00 (UTC)
Goto Top
Powershell in Batch eingebaut
@echo off
set "pfad=C:\Auswertung.txt"  
powershell -ExecutionPolicy ByPass -Command "&{(gc '%pfad%') | ?{(Get-Date ($_ -replace '.*,\s*(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2}),.*','$3.$2.$1 $4:$5:$6')) -ge (get-date).AddHours(-24)} | set-content '%pfad%'}"  

Wenns das dann war, den Beitrag bitte noch auf gelöst setzen.

Gruß und schönen Arbeitstag
jodel32
Member: Enno13
Enno13 Sep 17, 2015 at 07:11:36 (UTC)
Goto Top
PERFEKT

DANKE