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

Printed on: April 29, 2024 at 03:04 o'clock

Member: GeoSem
GeoSem Jun 22, 2017 at 18:12:58 (UTC)
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 Jun 25, 2017, updated at Jun 26, 2017 at 08:01:40 (UTC)
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
Solution 77559 Jun 26, 2017 at 00:16:03 (UTC)
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