Powershell - mehrere Zeilen zusammenfassen
Guten Abend,
ich bastel mal wieder an einem PowerShell-Skript, echt praktisch was man damit alles machen kann
Stoß aber auf ein nicht ganz triviales Problem.
Nehmen wir eine Textdatei, die ich in XML umwandeln will. Das Skript selbst macht eigentlich alles, wie ich es will - mit einer Ausnahme.
Die Datei sieht so aus:
Satzart:Text
100:Text1
110:Info1
110:Info2
110:Info3
100:Text2
110:InfoA
110:InfoB
Mein Problem, ich benötige den Text aus der Satzart 110 in einem Feld.
Nun war mein erster Gedanke, ich nehm mir eine Variable und befülle diese:
Die Ausgabe macht daraus folgendes:
Info1
Info1Info2
Info1Info2Info3
(okay, fast das gewünschte Ergebnis) - in der XML kommt es dann so an:
<INFO>
<Info1>Info1</Info1>
</INFO>
<INFO>
<Info1>Info1Info2</Info1>
</INFO>
<INFO>
<Info1>Info1Info2Info3</Info1>
</INFO>
Nur unglücklicherweise hilft mir das in der XML nichts. Das Programm dazu setzt voraus, das der Wert nur einmal kommt.
Ich bräuchte also den letzten Wert der Variable und die restlichen Zeilen wären für die XML-Ausgabe unwichtig.
Gibt es dafür irgendeine saubere Lösung?
ich bastel mal wieder an einem PowerShell-Skript, echt praktisch was man damit alles machen kann
Stoß aber auf ein nicht ganz triviales Problem.
Nehmen wir eine Textdatei, die ich in XML umwandeln will. Das Skript selbst macht eigentlich alles, wie ich es will - mit einer Ausnahme.
Die Datei sieht so aus:
Satzart:Text
100:Text1
110:Info1
110:Info2
110:Info3
100:Text2
110:InfoA
110:InfoB
Mein Problem, ich benötige den Text aus der Satzart 110 in einem Feld.
Nun war mein erster Gedanke, ich nehm mir eine Variable und befülle diese:
$Information = $Information + $TEXT
$xmlcreate.WriteStartElement("INFO")
$xmlcreate.WriteElementString("INFO1", $Information)
$xmlcreate.WriteEndElement()
Die Ausgabe macht daraus folgendes:
Info1
Info1Info2
Info1Info2Info3
(okay, fast das gewünschte Ergebnis) - in der XML kommt es dann so an:
<INFO>
<Info1>Info1</Info1>
</INFO>
<INFO>
<Info1>Info1Info2</Info1>
</INFO>
<INFO>
<Info1>Info1Info2Info3</Info1>
</INFO>
Nur unglücklicherweise hilft mir das in der XML nichts. Das Programm dazu setzt voraus, das der Wert nur einmal kommt.
Ich bräuchte also den letzten Wert der Variable und die restlichen Zeilen wären für die XML-Ausgabe unwichtig.
Gibt es dafür irgendeine saubere Lösung?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 391117
Url: https://administrator.de/contentid/391117
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
3 Kommentare
Neuester Kommentar
Ich bräuchte also den letzten Wert der Variable
$data = (Import-Csv 'd:\daten.txt' -delimiter ':' | ?{$_.Satzart -eq '110'} | select -ExpandProperty Text) -join ''
$data
Du beschreibst auch in Rätseln, das obige filtert das raus was du wolltest mehr weiß hier leider nur die Glaskugel, sorry. Wie du eine XML schreibst weist du ja selbst, der Schnippsel liefert dir rein die Kombination aller Werte des Satzes 110, mehr hattest du nicht erwähnt.