Benutzer mit den meisten Antworten
Felder in CSV Datei automatisch modifizieren

Frage
-
Hallo zusammen,
ich würde gerne Felder aus einer CSV Datei mit einem Powershell Script modifizieren lassen.
Genauer gesagt, ich habe eine CSV Datei und die lese ich ein mit beispielsweise import-CSV und möchte eine ganze Spalte abarbeiten lassen, wenn dort in Spalte 2 das Feld "X" heißt soll in Spalte 3 der Wert "Test1" geschrieben werden. Wenn aber in Spalte 2 das Feld "Y" heißt, soll in Spalte 3 der Wert "Test2" geschrieben werden.
Ich weiß nicht wie die IF Bedingung angewendet werden soll.
Ich bin für jede Hilfe dankbar.
Gruß
Lucky
- Bearbeitet Ludwig Forster Freitag, 10. August 2012 07:45
Antworten
-
Hier ist ein Beispiel:
$csv = Import-Csv d:\test.csv foreach ($row in $csv) { if ($row.Spalte2 -eq "x") { $row.Spalte3 = "Test1" } elseif ($row.Spalte2 -eq "y") { $row.Spalte3 = "Test2" } } $csv | Export-Csv d:\test_neu.csv -NoTypeInformation
"Spalte2","Spalte3" etc. musst du gegen die richtigen Spaltenüberschriften austauschen.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".- Als Antwort markiert Denniver ReiningMVP, Moderator Montag, 13. August 2012 23:01
-
Hallo Lucky,
das gleiche Problem hatte ich auch mal,
du musst die erste Zeile so definieren:$csv = Import-Csv d:\export.csv -Delimiter ";"
weil Import-Csv als Default-delimiter nur ein normales Komma benutzt.
Gruß Speedy
- Bearbeitet speedcar343 Montag, 13. August 2012 06:46
- Als Antwort markiert Ludwig Forster Montag, 13. August 2012 19:08
- Tag als Antwort aufgehoben Ludwig Forster Montag, 13. August 2012 19:08
- Als Antwort markiert Denniver ReiningMVP, Moderator Montag, 13. August 2012 23:01
Alle Antworten
-
Hier ist ein Beispiel:
$csv = Import-Csv d:\test.csv foreach ($row in $csv) { if ($row.Spalte2 -eq "x") { $row.Spalte3 = "Test1" } elseif ($row.Spalte2 -eq "y") { $row.Spalte3 = "Test2" } } $csv | Export-Csv d:\test_neu.csv -NoTypeInformation
"Spalte2","Spalte3" etc. musst du gegen die richtigen Spaltenüberschriften austauschen.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".- Als Antwort markiert Denniver ReiningMVP, Moderator Montag, 13. August 2012 23:01
-
-
Poste mal einen Auszug des der originalen und der "verhunzten" Csv. Ausserdem bitte das von dir angepasste Skript.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort". -
Hier ist die Original CSV:
"displayname";"l";"company";"co";"department";"mail";"facsimileTelephoneNumber";"Givenname";"title";"surname";"mobile";"physicalDeliveryOfficeName";"st";"streetAddress";"telephoneNumber";"sAMAccountName";"postalCode";"enabled";"Manager";"Incident State";"Deployment State" "Postmaster";;;;;"ad-setup@microsoft.com";;;;;;;;;;"ad-setup";;"True";;"Operational";"Microsoft.ActiveDirectory.Management.ADPropertyValueCollection" "Müller, Hans";"London";"Microsoft";"Italien";"IT-Services";"Hans.Mueller@microsoft.com";;"Hans";;"Müller";;"London";"BY";"Teststr. 1";"1234567";"user1";"12345";"False";"Meier, Sepp";"Operational";"Microsoft.ActiveDirectory.Management.ADPropertyValueCollection"
Hier die verhunzte CSV:
"displayname;""l"";""company"";""co"";""department"";""mail"";""facsimileTelephoneNumber"";""Givenname"";""title"";""surname"";""mobile"";""physicalDeliveryOfficeName"";""st"";""streetAddress"";""telephoneNumber"";""sAMAccountName"";""postalCode"";""enabled"";""Manager"";""Incident State"";""Deployment State""" "Postmaster;;;;;""ad-setup@shs-viveon.com"";;;;;;;;;;""ad-setup"";;""True"";;""Operational"";""Microsoft.ActiveDirectory.Management.ADPropertyValueCollection""" "Müller, Hans;""London"";""Microsoft"";""Italien"";""IT-Services"";""Hans.Mueller@microsoft.com"";;""Hans"";;""Müller"";;""London"";""BY"";""Teststr. 1"";""1234567"";""user1"";""12345"";""False"";""Meier"
Hier das Script:
$csv = Import-Csv d:\export.csv foreach ($row in $csv) { if ($row.enabled -eq "True") { $row."Deployment State" = "Production" } elseif ($row.enabled -eq "False") { $row."Deployment State" = "Inactive" } } $csv | Export-Csv d:\test.csv -encoding "unicode" -NoTypeInformation -Delimiter ";"
Vielen Dank.
Gruß
Lucky
-
Hallo Lucky,
das gleiche Problem hatte ich auch mal,
du musst die erste Zeile so definieren:$csv = Import-Csv d:\export.csv -Delimiter ";"
weil Import-Csv als Default-delimiter nur ein normales Komma benutzt.
Gruß Speedy
- Bearbeitet speedcar343 Montag, 13. August 2012 06:46
- Als Antwort markiert Ludwig Forster Montag, 13. August 2012 19:08
- Tag als Antwort aufgehoben Ludwig Forster Montag, 13. August 2012 19:08
- Als Antwort markiert Denniver ReiningMVP, Moderator Montag, 13. August 2012 23:01
-
Damit alle Probleme beseitigt?
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".- Als Antwort markiert Ludwig Forster Montag, 13. August 2012 19:08
- Tag als Antwort aufgehoben Ludwig Forster Montag, 13. August 2012 19:08
-
Hallo Speedy,
ja super, vielen Dank!!! Es passt perfekt!!
Ihr seid Spitze.
Gruß
Lucky
- Bearbeitet Ludwig Forster Montag, 13. August 2012 19:09