geosem
Goto Top

Zusammenführen mehrere Felder, Datei auswählen

Hallo

Ich möchte aus einer xml einige wenige Felder in eine csv-Datei exportieren.
Mit einem Feld geht es problemlos, aber wie bringe ich mehrere in $data?
Ich habe mit/ohne Komma in oder ohne Klammern etc. versucht ... erfolglos.

Hier das Script:

$in = 'camt.xml'  
$out = 'camt.csv'  
$xml = new-Object XML; $xml.Load($in)
$data = ($xml.document.BkToCstmrDbtCdtNtfctn.Ntfctn.Ntry.NtryDtls.TxDtls.Amt) +
       ($xml.document.BkToCstmrDbtCdtNtfctn.Ntfctn.Ntry.NtryDtls.TxDtls.CdtDbtInd)
$data | export-csv $out -Delimiter ";" -NoType -Encoding UTF8  

Gibt es eine Möglichkeit, die Input-Datei ($in) auf eine einfache Weise in einem Fenster auszuwählen?


Viele Dank für die Geduld und viele Grüsse

Content-Key: 341354

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

Ausgedruckt am: 19.03.2024 um 10:03 Uhr

Mitglied: GeoSem
GeoSem 22.06.2017 um 20:12:58 Uhr
Goto Top
Nach einigen Stunden suchen und probieren habe ich nun die Lösung für das auswählen der Datei, leider bin ich immer noch auf der Suche nach dem zusammenfügen von mehreren Elementen ...
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null  
$openFile = New-Object System.Windows.Forms.OpenFileDialog
$openFile.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*"   
If($openFile.ShowDialog() -eq "OK")  
  {$in = $openFile.FileName}
$out = 'camt.csv'  
$xml = new-Object XML; $xml.Load($in)
$data = ($xml.document.BkToCstmrDbtCdtNtfctn.Ntfctn.Ntry.NtryDtls.TxDtls.Amt) +
       ($xml.document.BkToCstmrDbtCdtNtfctn.Ntfctn.Ntry.NtryDtls.TxDtls.CdtDbtInd)
$data | export-csv $out -Delimiter ";" -NoType -Encoding UTF8  
Mitglied: 133417
133417 25.06.2017, aktualisiert am 26.06.2017 um 10:01:40 Uhr
Goto Top
Ein [customobject] nutzen face-wink
$data = [pscustomobject]@{'Amt'=$xml.document.BkToCstmrDbtCdtNtfctn.Ntfctn.Ntry.NtryDtls.TxDtls.Amt;'CdtDbtInd' = $xml.document.BkToCstmrDbtCdtNtfctn.Ntfctn.Ntry.NtryDtls.TxDtls.CdtDbtInd}  

Gruß
Mitglied: 77559
Lösung 77559 26.06.2017 um 02:16:03 Uhr
Goto Top
Da war ein ' zuviel drin face-wink

$data = [pscustomobject]@{
    'Amt'       = $xml.document.BkToCstmrDbtCdtNtfctn.Ntfctn.Ntry.NtryDtls.TxDtls.Amt  
    'CdtDbtInd' = $xml.document.BkToCstmrDbtCdtNtfctn.Ntfctn.Ntry.NtryDtls.TxDtls.CdtDbtInd}  
Gruß LotPings