Mehrere txt Dateien nach mehreren Variablen (Variablen-Pool) durchsuchen und inschließend die Zeilen mit der entsprechenden Variable in eine neue .txt Datein schreiben in VBScript
Hallo und Guten Morgen,
ich habe in einem bestimmten Ordner mehrere .log Files die ich nach bestimmten Fehlern durchsuchen darf. Daher möchte ich diese zeilenweise auslesen lassen und die komplette Zeile mit dem Argument in eine neue .txt Datei schreiben lassen.
Teilweise wurde dieses Thema in anderer Variante bereits behandelt. Ich habe eben nur das Problem, dass ich mehrere Variablen habe: Fehler, Problem, abgebrochen, etc...
Wie bekomme ich das unter einen Hut ?
Danke mal im Vorraus
ich habe in einem bestimmten Ordner mehrere .log Files die ich nach bestimmten Fehlern durchsuchen darf. Daher möchte ich diese zeilenweise auslesen lassen und die komplette Zeile mit dem Argument in eine neue .txt Datei schreiben lassen.
Teilweise wurde dieses Thema in anderer Variante bereits behandelt. Ich habe eben nur das Problem, dass ich mehrere Variablen habe: Fehler, Problem, abgebrochen, etc...
Wie bekomme ich das unter einen Hut ?
Danke mal im Vorraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 108885
Url: https://administrator.de/contentid/108885
Ausgedruckt am: 23.11.2024 um 08:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo PortableApes und willkommen im Forum!
Für diese Anforderung würde ich eher Batch als VBS verwenden - das könnte (ungetestet) so aussehen:
Die Datei "Fehlerliste.txt" müsste einfach je Zeile einen Suchbegriff beinhalten, also:
Grüße
bastla
Für diese Anforderung würde ich eher Batch als VBS verwenden - das könnte (ungetestet) so aussehen:
@echo off & setlocal
set "Ordner=D:\Deine Logs"
set "Typ=log"
set "Liste=D:\Fehlerliste.txt"
set "Erg=D:\Errors.txt"
if exist "%Erg%" del "%Erg%"
for %%i in ("%Ordner%\*.%Typ%") do >>"%Erg%" findstr /i /g:"%Liste%" "%%i"
Fehler
Problem
abgebrochen
etc
bastla
Hallo PortableApes!
Dann etwa so:
Errorhandling kannst Du sicher selbst ergänzen (etwa Überprüfung, ob der Log-Ordner - siehe Zeile 8 - vorhanden ist, etc) ...
Grüße
bastla
Dann etwa so:
InDir = "D:\Deine Logs"
InExt = "log" 'Dateityp in Kleinbuchstaben
OutFile = "D:\Errors.txt"
ErrorMessages = Array("Fehler", "Problem", "abgebrochen", "etc") ' Liste der Fehlermeldungen
Set fso = CreateObject("Scripting.FileSystemObject")
Set I = fso.GetFolder(InDir)
Set E = fso.CreateTextFile(OutFile, True) 'Ausgabedatei erstellen (ev bestehende Datei überschreiben)
For Each File In I.Files 'Alle Dateien des Log-Ordners durchgehen ...
If LCase(fso.GetExtensionName(File)) = InExt Then ' ... und wenn vom vorgegebenen Typ ...
T = Split(File.OpenAsTextStream.ReadAll, vbCrLF) ' ... den Dateiinhalt zeilenweise in ein Array einlesen
U = Ubound(T)
For i = 0 To U ' Alle Zeilen des Textes durchgehen ...
For Each ErrMsg In ErrorMessages ' ... und jeweils mit allen Fehlermeldungen vergleichen
If InStr(1, T(i), ErrMsg, vbTextCompare) > 0 Then ' Wenn eine Fehlermeldung in der Zeile enthalten ist ...
E.WriteLine T(i) ' ... Zeile in die Ausgabedatei schreiben und ....
Exit For '.... Überprüfung beenden (Zeile erledigt).
End If
Next
Next
End If
Next
E.Close
Grüße
bastla