Ich bin neu in Powershell, also ist das Skript ein Frankenstein von verschiedenen Beispielen von Seiten.Gibt es eine Möglichkeit zum Erzwingen der Powershell -Export-CSV-Cmdlet eine bestimmte Reihenfolge der Spalten?
Meine Frage ist, wie kann ich sicherstellen, dass eine CSV-Datei, die ich für eine DataTable erstellen, behält die Spalte Reihenfolge, die ich angeben?
Mein Skript tut dies, wie so die CSV-Header und Werte zu füllen:
...snip...
$dataTable | ForEach-Object {
$csv+=New-Object PSObject -Property @{
program_code=$_.ProgramCode;
first_name=$_.FirstName;
last_name=$_.LastName;
email=$_.email;
phone=$_.phone;
phone2=$_.otherphone;
address=$_.addr1;
address2=$_.addr2;
city=$_.city;
state=$_.state;
postal_code=$_.Zip;
country=$_.Country;
grad_year=$_.HsGradDate;
lead_date=$_.LeadDate;
lead_source=$_.LeadSource;
school_status=$_.SchoolStatus;
}
}
$csv | Export-CSV C:\scripts\NewLeads$(Get-Date -Format yyyyMMdd).csv -notype -Append
...snip...
mag ich die Datei auf Spalten in der Reihenfolge haben, dass ich im Skript angeben, aber wenn ich es in Notepad öffnen oder Excel erscheinen die Spalten in einer scheinbar zufälligen Reihenfolge. Stichwort scheinbar, da sie vielleicht eine Methode haben, sich selbst zu bestellen.
Danke, beide gute Lösungen! Du brauchst ein bisschen weniger tippen, worüber ich ein großer Fan bin. – ledgeJumper
Die Verwendung der Notation [pscustobject] @ {} half immens bei der v2-Methode, danke – flux9998