Powershell csv Convert-String Date Time
Hallo liebe Administratoren,
ich habe aktuell ein kleines Problem bei der Konvertierung eines Strings, bei dem ich leider selbst mit googlen nicht weiterkomme.
Ich habe eine große CSV mit mehreren hunderten von Spalten die ich über ein Script in eine kleinere CSV umwandel. In einer Spalte steht ein Datum mit Uhrzeit, aber in Form eines Strings, z.B. wie folgt:
Nun möchte ich diese Werte in der neuen CSV Datei im folgenden Format haben:
Ich habe dafür aktuell diesen Code verwendet:
Leider erhalte ich in der konvertierten CSV Datei immer genau den String, den ich im Convert-String Beispiel angebe, also wie hier im Bsp. "15.10.2020 00:00:00", die Werte der input Datei werden scheinbar nicht berücksichtigt.
Habe ich ein Problem bei der Pipe, wenn ja wo? Kann mich bitte jemand auf meinen Fehler hinweisen?
Vielen dank und Grüße
narthan
ich habe aktuell ein kleines Problem bei der Konvertierung eines Strings, bei dem ich leider selbst mit googlen nicht weiterkomme.
Ich habe eine große CSV mit mehreren hunderten von Spalten die ich über ein Script in eine kleinere CSV umwandel. In einer Spalte steht ein Datum mit Uhrzeit, aber in Form eines Strings, z.B. wie folgt:
Date and Time
"2020-10-15 03:15:58"
"2020-10-15 03:09:21"
"2020-09-26 03:33:31"
"2020-10-15 03:59:01"
Nun möchte ich diese Werte in der neuen CSV Datei im folgenden Format haben:
Date
"15.10.2020 00:00:00"
"15.10.2020 00:00:00"
"26.09.2020 00:00:00"
"15.10.2020 00:00:00"
Ich habe dafür aktuell diesen Code verwendet:
Import-Csv 'C:\Users\test\input.csv' | Select-Object -Property '#',@{label='Date';expression={$_.'Date and Time' | Convert-String -Example '2020-06-29 04:00:00=15.10.2020 00:00:00'}} | Export-Csv -Path 'C:\Users\test\Output.csv' -NoTypeInformation
Leider erhalte ich in der konvertierten CSV Datei immer genau den String, den ich im Convert-String Beispiel angebe, also wie hier im Bsp. "15.10.2020 00:00:00", die Werte der input Datei werden scheinbar nicht berücksichtigt.
Habe ich ein Problem bei der Pipe, wenn ja wo? Kann mich bitte jemand auf meinen Fehler hinweisen?
Vielen dank und Grüße
narthan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 613123
Url: https://administrator.de/contentid/613123
Ausgedruckt am: 22.11.2024 um 06:11 Uhr
3 Kommentare
Neuester Kommentar
Moin,
bei -Example müssen vor und hinter dem Gleichzeichen der selbe Inhalt stehen (nur halt wie gewünscht vertauscht), sonst kann er natürlich nicht verstehen, was du da eigentlich tun willst.
Darüber hinaus, muss dieser auch eindeutige Werte haben. Wenn du wie bei der Uhrzeit zwei mal "00" verwendest, sind diese u. U. im Ergebnis vertauscht.
Imao ist es aber ohnehin einfacher, die Werte mit Regex-Replace um zu drehen.
Gruß Thomas
bei -Example müssen vor und hinter dem Gleichzeichen der selbe Inhalt stehen (nur halt wie gewünscht vertauscht), sonst kann er natürlich nicht verstehen, was du da eigentlich tun willst.
Darüber hinaus, muss dieser auch eindeutige Werte haben. Wenn du wie bei der Uhrzeit zwei mal "00" verwendest, sind diese u. U. im Ergebnis vertauscht.
Convert-String -Example '2020-06-29 01:02:03=29.06.2020 01:02:03'
Imao ist es aber ohnehin einfacher, die Werte mit Regex-Replace um zu drehen.
Import-Csv 'C:\Users\test\input.csv' | Select-Object -Property '#',@{label='Date';expression={$_.'Date and Time' -replace '^(\d{4})-(\d{2})-(\d{2})','$3.$2.$1'}} | Export-Csv -Path 'C:\Users\test\Output.csv' -NoTypeInformation
Gruß Thomas
Da das Datum hier schon in einem direkt parsbaren Format vorliegt geht auch ohne Regex
Gruß w.
Import-csv 'C:\Users\test\input.csv' | select @{n='Date';e={(get-date $_.'Date and Time').Date.toString('dd.MM.yyyy HH:mm:ss')}} | export-csv 'C:\Users\test.output.csv' -NoType