bastian94
Goto Top

Textdatei bestimmte strings auslesen, dateinamen einfügen, tabelle speichern

Hallo Leute,

ich bin erst seit kurzem am Skripten mit powershell/batch und stehe nun vor einem kniffligen Problem; ich weiß nicht wie ich das mit welchem tool lösen könnte.
Ich habe eine unstrukturierte Textdatei mit aufsteigender Uhrzeit und 6 "Spalten". Es gibt durchgehend vom Aufbau nur 2 fast identische Zeilen, nur in der 6ten Spalte ist ein anderer Text.

Die Spalten mit den Varianten: 1 : Uhrzeit, String, String, String, String, String Nummer(Order)
2 : Uhrzeit, String, String, String, String, String Nummer(Soll) String Nummer(Ist)

Aus dieser Textdatei möchte ich mir Uhrzeit und die Nummern auslesen lassen und exportieren.

Die Tabelle möchte ich mit folgenden Spaltenköpfen ausgeben: RechnerNr, Datum, Uhrzeit, OrderNr, Nummer(Soll), Nummer(Ist).

Die Spalten RechnerNr, Datum müssten vom Dateinamen (Datum-RechnerNr) in die Tabelle vorne importiert/kopiert werden.

Problematisch wird es bei der OrderNr. Zuerst kommt Variante/Zeile 1 mit einer OrderNr, darauffolgend kommt eine beliebige Anzahl an Varianten/Zeilen mit unterschiedlichen Nummer(Soll) und Nummer(Ist), welche eine Teilmenge der OrderNr sind.

Ich hoffe ihr könnt mir irgendwie folgen und weiterhelfen. Danke im Voraus für die Hilfe!

Content-Key: 392079

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

Ausgedruckt am: 29.03.2024 um 13:03 Uhr

Mitglied: 137443
137443 09.11.2018 aktualisiert um 10:50:40 Uhr
Goto Top
Ich hoffe ihr könnt mir irgendwie folgen und weiterhelfen.
Mit Beispieldatei mit IST und SOLL Zustand sicherlich , so wird das ehrlich gesagt zum Ratespiel mit mehr Fragen als Antworten.

Gruß l.
Mitglied: Bastian94
Bastian94 09.11.2018 aktualisiert um 11:25:07 Uhr
Goto Top
Ach ja danke, anbei ist ein Beispiel. Uhrzeit und die Nummern interessieren mich. JobID Nummer soll OrderNr sein, benötigt Nummer(Soll) und gescannt Nummer(Ist).

Grüße Basti
unbenannt
Mitglied: 137443
Lösung 137443 09.11.2018 aktualisiert um 12:05:57 Uhr
Goto Top
Bidde:
$folder = 'D:\Bastian94'  
gci $folder -File -Filter *.txt -PipelineVariable file | %{
    [regex]::matches((gc $_.Fullname -raw),'(?ism)JobId (\d+)(.*?)(?=JobId|\z)').Captures | ?{$_.Success} | %{  
        $jobid = $_.Groups[1].Value
        [regex]::matches($_.Groups[2].Value,'(?ism)^(\d{2}:\d{2}:\d{2}).*?Benötigt "(\d+)".*?Gescannt "(\d+)"').Captures | ?{$_.Success} | %{  
            [pscustomobject]@{
                RechnerNr = $file.BaseName.split("-")[1]  
                Datum = $file.BaseName.split("-")  
                Uhrzeit = $_.Groups[1].Value
                OrderNr = $jobid
                "Nummer(Soll)" = $_.Groups[2].Value  
                "Nummer(Ist)" = $_.Groups[3].Value  
            }
        }
    }
} | export-csv -LiteralPath "$folder\merged.csv" -Delimiter ";" -NoType -Encoding UTF8  
Mitglied: Bastian94
Bastian94 09.11.2018, aktualisiert am 12.11.2018 um 13:00:30 Uhr
Goto Top
Super, danke!