Jump to content

tim3510

Members
  • Gesamte Inhalte

    2
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von tim3510

  1. Das Problem ist hier glaube ich weniger, dass das schreiben der Datei bzw. des Arrays so lange dauert. Die Überprüfung von einer Zeile (1x E-Mail) aus der Adressen.txt auf die ganze mail.log dauert mehrere Minuten, wenn diese nicht gefunden wird und somit natürlich bis zum ende durchsucht wird.

    Leider weiss ich nicht, wie man jeweils immer 1000 Adressen auf eine zeile überprüfen würde. Wäre das wirklich schneller?

    vor 12 Minuten schrieb testperson:

    Hi,

     

    wo kommt denn das Log her? Lässt sich das evtl. direkt in etwas performanteres wie eine einfache Textdatei schreiben (z.B. SQL)?

     

    Gruß

    Jan

    Leider nur die Möglichkeit in diesem Format :(

  2. Hallo Zusammen,

     

    mit fehlt leider die Erfahrung um folgendes Script performanter zu machen. Leider finde ich auch nicht wirklich etwas im Netz dazu.

     

    Generell liegt das Problem wahrscheinlich auch in der Größe der Log Datei, die durchsucht wird. Die Datei ist ca. 40GB groß.

    In der Adressen.txt sind ca. 1000 E-Mail Adressen enthalten. Es muss geprüft werden, welche E-Mail Adresse in dem 40GB großen Dokument vorhanden ist.

    Wenn es vorhanden ist, soll im Output-Dokument hinter der E-Mail ein "Ja" geschrieben werden.

    Vielen Dank im Voraus!

     

    Gruß Tim

    $logFolder = "H:\logs.txt"
    $adressen= Get-Content H:\Adressen.txt
    $ergebnis = @()
        
    foreach ($adr in $adressen){
        $suche =  Select-String -Path $logFolder -Pattern "\[\(\'from\'\,.*$adr.*\'\)\]" -List
        $aktiv= $false
        $adr
        if ($suche){
            $aktiv = $true 
        }
    
        if ($aktiv -eq $true){
            $ergebnis+=$adr + ";Ja"
        }
        else{
            $ergebnis+=$adr + ";Nein"
        }
    }
    $ergebnis |Out-File H:\output.txt

     

×
×
  • Neu erstellen...