Powershell Export-CSV Spalte mit Versionsnummern ergibt Chaos
Heute ein 2tes mal,
ich habe in einem Export eine Spalte die enthält Versionsnummern.
Wenn ich dies allerdings nun durch ein Export-CSV in eine CSV schreiben lasse, macht er mir aus dem Inhalt alles mögliche nur nicht die Versionsnummern sobald die Version mehrere "." enthält.
Oft macht er aus den Zahlenketten ein Datum. Formatiert man das nachträglich sind die Inhalte allerdings trotzdem murks.
Gibt es einen Weg die Spalte explizit als Text zu deklarieren vor dem Export?
VG
ich habe in einem Export eine Spalte die enthält Versionsnummern.
Wenn ich dies allerdings nun durch ein Export-CSV in eine CSV schreiben lasse, macht er mir aus dem Inhalt alles mögliche nur nicht die Versionsnummern sobald die Version mehrere "." enthält.
Oft macht er aus den Zahlenketten ein Datum. Formatiert man das nachträglich sind die Inhalte allerdings trotzdem murks.
Gibt es einen Weg die Spalte explizit als Text zu deklarieren vor dem Export?
VG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 379727
Url: https://administrator.de/forum/powershell-export-csv-spalte-mit-versionsnummern-ergibt-chaos-379727.html
Ausgedruckt am: 16.04.2025 um 23:04 Uhr
18 Kommentare
Neuester Kommentar
Servus.
Das sieht mir, nach meiner Glaskugel zu Urteilen ganz danach aus als wenn das Feld Version ein Objekt mit mehreren Eigenschaften und Methoden ist. Also lass dir alle diese Objekt-Member doch mal anzeigen
und inkl. Methoden: (dort gibt es je nach Objekt oftmals Methoden ala .toVersionString())
Wenn das Objekt Version darin nämlich die ToString() Methode nicht "Überschreibt " bringt das explizite kovertieren via [string] nichts dann musst du die entsprechende Eigenschaft explizit auswählen oder eine entsprechende Methode des Objekts bemühen das daraus ein String wird und dann mittels Methode oder Eigenschaft an das Feld "Version" anhängen.
Ohne dein Objekt zu kennen, eben nur Muußkugel
.
Ohne diese Angabe werden einfach die Eigenschaften des Version-Feldes so wie sie per Default von der Powershell per Format-List ausgegeben werden in die CSV gepappt (gemuußt?
).
Grüße Uwe
gibts allerdings nur Muuuß
Machs den Leuten hier doch nicht so schwer ...Mousse gibts bei Lafer, Lichter, Lecker aber hier?!Das sieht mir, nach meiner Glaskugel zu Urteilen ganz danach aus als wenn das Feld Version ein Objekt mit mehreren Eigenschaften und Methoden ist. Also lass dir alle diese Objekt-Member doch mal anzeigen
$Result | select -Expand Version | fl *
$Result | select -Expand Version | gm * -Force
Wenn das Objekt Version darin nämlich die ToString() Methode nicht "Überschreibt " bringt das explizite kovertieren via [string] nichts dann musst du die entsprechende Eigenschaft explizit auswählen oder eine entsprechende Methode des Objekts bemühen das daraus ein String wird und dann mittels Methode oder Eigenschaft an das Feld "Version" anhängen.
$Result | Select "Produktname", @{l="Version"; e={$_.Version."Eigenschaft oder Methode"}} | Export-CSV -path $share -NoType -Encoding UTF8 -delimiter ";"
Ohne diese Angabe werden einfach die Eigenschaften des Version-Feldes so wie sie per Default von der Powershell per Format-List ausgegeben werden in die CSV gepappt (gemuußt?
Grüße Uwe
Scheint als hätten beide Spalten eine zusätzliche Sub-Eigenschaft, weil die jeweils als Wert in der ersten Zeile der Spalten stehen:
Probier es mit
Aber die automatische Umwandlung in Excel ist normal da kannst du nur gegensteuern indem du statt Doppelklick auf die CSV den Import-Asistenten in Excel für delimited Text benutzt!!
Probier es mit
$Result | Select @{n='Produktname';e={$_.Produktname.ApplicationText}}, @{n="Version"; e={$_.Version.Versiontext}} | Export-CSV -path $share -NoType -Encoding UTF8 -delimiter ";"
Zitat von @H41mSh1C0R:
Nein keine beiden Subeigenschaften, sondern "ApplicationsText" und "Versionstext" ist ein Dummy Eintrag in der DB, den einfach ignorieren. =)
OK. Dann s.o., die automatische Felddatentyp-Umwandlung in Excel ist normal da kannst du nur gegensteuern indem du statt Doppelklick auf die CSV den Import-Asistenten in Excel für delimited Text benutzt und dort für die Version Spalte Text als Typ angibst!!Nein keine beiden Subeigenschaften, sondern "ApplicationsText" und "Versionstext" ist ein Dummy Eintrag in der DB, den einfach ignorieren. =)
Nö, das was tatsächlich in der CSV landet ist korrekt so wie es die Powershell dir auswirft, es wird nur beim Doppelklick von Excel falsch interpretiert, das ist ein Automatismus von Excel der versucht die Datentypen zu erkennen. Den Import in Excel brauchst du nur wenn du die Daten direkt in Excel bearbeitest.
Zitat von @H41mSh1C0R:
Also entweder ich stelle ihm eine xlxs bereit oder er wird nie das csv anklicken.
Hindert dich ja keiner dran. Oder stelle jedem Wert ein Hochkomma voran dann interpretiert Excel nichts darin Also entweder ich stelle ihm eine xlxs bereit oder er wird nie das csv anklicken.
Hier für dein Beispiel dann wird die Spalte nicht mehr interpretiert sondern durch die Formel als Plaintext dargestellt wenn deine Jungs und Mädels drauf rum klicken ...
Als denn, sportlichen Feierabend (mit Fritten oder Froschschenkeln?
)
Grüße Uwe
$Result | Select "Produktname", @{n='Version'; e={"=`"$($_.Version)`""}} | Export-CSV -path $share -NoType -Encoding UTF8 -delimiter ";"
Als denn, sportlichen Feierabend (mit Fritten oder Froschschenkeln?
Grüße Uwe