Txt-Datei nach bestimmten Wert durchsuchen, wenn positiv, alles davorhängende löschen
Hallo zusammen,
ich bin grade auf der Suche nach einem Lösungsansatz, wie ich am besten ein kleines Problem von mir löse.
Ich hoff mir kann da jmd helfen:
Ich habe eine Log File log.txt a la:
12.05.2006
sfalhsdjfhasldncvdbcvljkcbnv1
13.05.2006
sfalhsdjfhasldncvdbcvljkcbnv2
15.05.2006
sfalhsdjfhasldncvdbcvljkcbnv3
16.05.2006
sfalhsdjfhasldncvdbcvljkcbnv4
17.05.2006
sfalhsdjfhasldncvdbcvljkcbnv4
Nun will ich per Batch oder VBS die File nach einem Datum (älter 2 Tage) durchsuchen.
Sprich am 17.05 führe ich das Script aus.
Das durchsucht die log, ob es einträge älter 15.05 gibt und löscht gegebenfalls diese.
Hat jmd eine Idee wie man das am betsen realisieren könnte?
Wäre für jede Hilfe sehr dankbar!
ich bin grade auf der Suche nach einem Lösungsansatz, wie ich am besten ein kleines Problem von mir löse.
Ich hoff mir kann da jmd helfen:
Ich habe eine Log File log.txt a la:
12.05.2006
sfalhsdjfhasldncvdbcvljkcbnv1
13.05.2006
sfalhsdjfhasldncvdbcvljkcbnv2
15.05.2006
sfalhsdjfhasldncvdbcvljkcbnv3
16.05.2006
sfalhsdjfhasldncvdbcvljkcbnv4
17.05.2006
sfalhsdjfhasldncvdbcvljkcbnv4
Nun will ich per Batch oder VBS die File nach einem Datum (älter 2 Tage) durchsuchen.
Sprich am 17.05 führe ich das Script aus.
Das durchsucht die log, ob es einträge älter 15.05 gibt und löscht gegebenfalls diese.
Hat jmd eine Idee wie man das am betsen realisieren könnte?
Wäre für jede Hilfe sehr dankbar!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 54746
Url: https://administrator.de/contentid/54746
Ausgedruckt am: 26.11.2024 um 01:11 Uhr
8 Kommentare
Neuester Kommentar
Hier hab ich diesen Fehler abgefangen (unggetestet):
miniversum
@echo off
set string="15.05."
set "infile=datei.txt"
FOR /F "delims=" %%i in ('find /n /i %string% %infile%') do set nummer=%%i
if "%nummer:~0,5%" equ "-----" (
echo %string% nicht in "%infile%" vorhanden
pause
) else (
set /a nummer=%nummer%-1
more +%nummer% %infile%>tempfile.txt
del %infile%
ren tempfile.txt %infile%
)
miniversum
Moin,
nur kleine Korrektur eines Flüchtigkeitsfehlers:
Ändere: if "%nummer:0,5%"="-----"
in: if "%nummer:0,5%"=="-----"
"IF"-Prüfung auf Gleichheit im CMD-Interpreter mit doppeltem Gleichheitszeichen,
Zuweisung eines Wertes mit SET und einfachem Gleichheitszeichen.
[Ansonsten denke ich, der Beitrag kann auf "Gelöst" gesetzt werden?]
Grüsse
Biber
nur kleine Korrektur eines Flüchtigkeitsfehlers:
Ändere: if "%nummer:0,5%"="-----"
in: if "%nummer:0,5%"=="-----"
"IF"-Prüfung auf Gleichheit im CMD-Interpreter mit doppeltem Gleichheitszeichen,
Zuweisung eines Wertes mit SET und einfachem Gleichheitszeichen.
[Ansonsten denke ich, der Beitrag kann auf "Gelöst" gesetzt werden?]
Grüsse
Biber
Moin schulle2,
dazu musst Du unter Windows-GUI-Krams (z.B. Explorer) und dem Batch die gleichen Codepages sicherstellen.
"Windows" verwendet hier (wo datt Forum steht) die Codepage 1252; die CMD.exe verwendet meistens die Codepage 850 oder 437.
Überprüfen am Cmd-Prompt mit dem Befehl CHCP (==Change Codepage).
Einstellen einer anderen Codepage am Prompt/im Batch mit "CHCP 1252" oder CHCP "850" BEVOR irgendetwas mit Umlauten gelesen oder in Dateien geschrieben wird.
Unter "Umlaut CHCP Batch" sollte hier im Forum etwas darüber zu finden sein.
Gruss Biber
dazu musst Du unter Windows-GUI-Krams (z.B. Explorer) und dem Batch die gleichen Codepages sicherstellen.
"Windows" verwendet hier (wo datt Forum steht) die Codepage 1252; die CMD.exe verwendet meistens die Codepage 850 oder 437.
Überprüfen am Cmd-Prompt mit dem Befehl CHCP (==Change Codepage).
Einstellen einer anderen Codepage am Prompt/im Batch mit "CHCP 1252" oder CHCP "850" BEVOR irgendetwas mit Umlauten gelesen oder in Dateien geschrieben wird.
Unter "Umlaut CHCP Batch" sollte hier im Forum etwas darüber zu finden sein.
Gruss Biber