Benutzer mit den meisten Antworten
Format einer Spalte an out-gridview uebergeben

Frage
-
Halli hallo,
vielleicht kann mir jemand einen guten Tip geben.
Und zwar moechte ich eine csv-Datei oder eine txt.Datei mit out-gridview ausgeben. Das ist ja recht simple z.b. so:
$p = import-csv -Delimiter : -Path c:\test.csv
$p | get-member
$p | out-gridviewAllerdings sollen die enthaltenen Spalten vom unterschiedlichen Typ sein. Wenn ich jetzt naemlich mit Out-GridView eine Zeile Filtern moechte steht da immer <Empty>. Ich hab in der einen Spalte aber ein Datum und moechte es auch so filtern koennen.
Bei der Funktion "(Get-Date ).ToString("yyyy-MM-dd HH:mm:ss")' klappt das auch ganz wunderbar, so wie ich es mir vorstelle. Nun moechte ich aber nicht das aktuelle Datum haben, sonder das, was in der Datei drin steht.
Hat da jemand ein Tip fuer mich, wie ich das Format der einzelnen Spalte an GridView uebergeben kann?
Antworten
-
Also ich habe eine Datei mit folgenden CSV Daten:
Nachname, Name, Datum
Gaertner,Sabine,03.04.2010
Loewe,Kerstin,02.07.2011
Mueller,Claudia,22.03.2013
Nun mache ich folgendes:# Korrekt Typisiertes Objekt erstellen $Obj = New-Module -AsCustomObject -ScriptBlock { [String]$Nachname = $Null [String]$Name = $Null [DateTime]$Datum = Get-Date Export-ModuleMember -Variable * } Import-CSV c:\temp\daten.txt -Delimiter ',' | ForEach-Object { # Typisierte Objektvorlage benutzen $Obj.Nachname = $_.Nachname $Obj.Name = $_.Name $Obj.Datum = [DateTime]::Parse($_.Datum) $Obj } | Out-GridView
Siehe: PowerShell eigene Objekte erstellen Custom Objects
http://www.admin-source.de/BlogDeu/463/powershell-eigene-objekte-erstellen-custom-objects
Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
German ? Come to German PowerShell Forum!- Als Antwort markiert Su Si Donnerstag, 21. Februar 2013 15:35
-
# Korrekt Typisiertes Objekt erstellen $Obj = New-Module -AsCustomObject -ScriptBlock { [String]$Nachname = $Null [String]$Name = $Null [DateTime]$Datum = Get-Date Export-ModuleMember -Variable * } Import-CSV c:\temp\daten.txt -Delimiter ',' | ForEach-Object { # Typisierte Objektvorlage benutzen $Obj.Nachname = $_.Nachname $Obj.Name = $_.Name $Obj.Datum = [DateTime]::Parse($_.Datum) $Obj } | Select-Object Nachname,Name,Datum | Out-GridView
Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
German ? Come to German PowerShell Forum!- Als Antwort markiert Su Si Donnerstag, 28. Februar 2013 09:03
Alle Antworten
-
Also ich habe eine Datei mit folgenden CSV Daten:
Nachname, Name, Datum
Gaertner,Sabine,03.04.2010
Loewe,Kerstin,02.07.2011
Mueller,Claudia,22.03.2013Nun mache ich folgendes:
Import-CSV c:\temp\daten.txt -Delimiter ',' | Select-Object Nachname,Name,@{Name='Datum';Expression={[DateTime]::Parse($_.Datum)}} | Out-GridView
Geht doch ! ;-)
Siehe: http://msdn.microsoft.com/de-de/library/vstudio/system.datetime_methods.aspx
und : http://technet.microsoft.com/en-us/library/ff730948.aspx
Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
German ? Come to German PowerShell Forum! -
Hmmm... leider nicht ganz das was ich versucht hatte zu beschreiben. Nun wird das Datum zwar so dargestellt, wie ich es moechte, allerdings moechte ich es auch so sortieren lassen koennen.
Wenn man auf Add criteria\Kriterien hinzufuegen geht steht dort im Feld immer noch <Empty> bzw. <Leer> Ich moechte aber, dass Out-gridview weiss, dass es ein Datum ist. Dann erscheint z.B. in dem Feld, wo man was zum Filtern eintragen kann, dd.MM.YYYY und dann kann man auch so schoene Vergleiche machen, wie z.B. liegt dazwischen
-
Also ich habe eine Datei mit folgenden CSV Daten:
Nachname, Name, Datum
Gaertner,Sabine,03.04.2010
Loewe,Kerstin,02.07.2011
Mueller,Claudia,22.03.2013
Nun mache ich folgendes:# Korrekt Typisiertes Objekt erstellen $Obj = New-Module -AsCustomObject -ScriptBlock { [String]$Nachname = $Null [String]$Name = $Null [DateTime]$Datum = Get-Date Export-ModuleMember -Variable * } Import-CSV c:\temp\daten.txt -Delimiter ',' | ForEach-Object { # Typisierte Objektvorlage benutzen $Obj.Nachname = $_.Nachname $Obj.Name = $_.Name $Obj.Datum = [DateTime]::Parse($_.Datum) $Obj } | Out-GridView
Siehe: PowerShell eigene Objekte erstellen Custom Objects
http://www.admin-source.de/BlogDeu/463/powershell-eigene-objekte-erstellen-custom-objects
Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
German ? Come to German PowerShell Forum!- Als Antwort markiert Su Si Donnerstag, 21. Februar 2013 15:35
-
Tut es Import-CSV nicht ?
Zeig mal Beispieldaten!Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
German ? Come to German PowerShell Forum! -
Noch mal danke fuer deine Antwort. Es hat jetzt alles super funktioniert. Nach langem Suchen habe ich auch den Fehler gefunden. Im Datensatz war eine Spalte mehr als im Header... deshalb hat er immer gesagt, dass irgendwas mit "name" waere.
Also wie gesagt, noch mal vielen vielen dank fuer deine schnelle Antwort.
Viele Gruesse
-
Ich haette da noch mal eine Frage. :)
Gibt es eine Moeglichkeit, dass die header der Tabelle nicht alphabetisch sortiert werden?
Also bleiben wir mal bei dem Beispiel
Nachname, Name, Datum
Gaertner,Sabine,03.04.2010
Loewe,Kerstin,02.07.2011
Mueller,Claudia,22.03.2013Wenn man es mit typisierten objekten erzeugt erhaelt man die header immer in alphabetischer Reihenfolge. Also Datum, Nachname, Name.
Ich moechte aber gerne erst den Namen dann den Nachnamen und dann das Datum haben.
Ich hab es schon mit sort probiert, aber dabei kann man immer nur die Zeilen sortieren und nicht den Header. Ich habe es auch schon probiert den Header explizit anzugeben, aber dann benutzt er den Header auch als Zeile....
und eine neue CSV kann ich nicht generieren, weil ich dann zu grosse Perfomance verluste haette.
Ich bin fuer jede Idee sehr Dankbar ;)
-
# Korrekt Typisiertes Objekt erstellen $Obj = New-Module -AsCustomObject -ScriptBlock { [String]$Nachname = $Null [String]$Name = $Null [DateTime]$Datum = Get-Date Export-ModuleMember -Variable * } Import-CSV c:\temp\daten.txt -Delimiter ',' | ForEach-Object { # Typisierte Objektvorlage benutzen $Obj.Nachname = $_.Nachname $Obj.Name = $_.Name $Obj.Datum = [DateTime]::Parse($_.Datum) $Obj } | Select-Object Nachname,Name,Datum | Out-GridView
Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
German ? Come to German PowerShell Forum!- Als Antwort markiert Su Si Donnerstag, 28. Februar 2013 09:03