114298
Jun 01, 2015, updated at 12:26:17 (UTC)
6731
10
0
Inhalt einer .csv mit PowerShell prüfen
Hallo zusammen,
ich bin noch bisschen am hin und her überlegen wie ich das Problem am besten löse:
Ich habe eine .csv Datei. In der Spalte A sind mehrere Datensätze(94 Spalten) enthalten die mit einem { getrennt sind.
Ich möchte jetzt prüfen, ob die Datei auch vollständig ist, sprich, ich möchte prüfen, ob 94 mal das { in der Spalte A enthalten ist.
Die Datei hat 94 Spalten und mehrere tausend Zeilen. Das ist immer unterschiedlich.
Ich habe einmal überlegt, das excel zu öffnen und über Powershell eine Excel-Formel in Excel einzufügen die das prüft weil ich keine Powershell funktion gefunden habe.
Vielleicht kann mir einer ja einen Gedankenstoss geben, wie ich das mit Powershell-Funktionen lösen kann.
Besten Dank
Grüße
Memo
ich bin noch bisschen am hin und her überlegen wie ich das Problem am besten löse:
Ich habe eine .csv Datei. In der Spalte A sind mehrere Datensätze(94 Spalten) enthalten die mit einem { getrennt sind.
Ich möchte jetzt prüfen, ob die Datei auch vollständig ist, sprich, ich möchte prüfen, ob 94 mal das { in der Spalte A enthalten ist.
Die Datei hat 94 Spalten und mehrere tausend Zeilen. Das ist immer unterschiedlich.
Ich habe einmal überlegt, das excel zu öffnen und über Powershell eine Excel-Formel in Excel einzufügen die das prüft weil ich keine Powershell funktion gefunden habe.
Vielleicht kann mir einer ja einen Gedankenstoss geben, wie ich das mit Powershell-Funktionen lösen kann.
Besten Dank
Grüße
Memo
Please also mark the comments that contributed to the solution of the article
Content-Key: 273493
Url: https://administrator.de/contentid/273493
Printed on: April 25, 2024 at 04:04 o'clock
10 Comments
Latest comment
Moin,
Klär uns mal mit einer Beispielzeile deiner CSV auf , hat diese auch Überschriften etc. pp
Danke.
Gruß jodel32
Zitat von @114298:
Ich habe eine .csv Datei. In der Spalte A sind mehrere Datensätze(94 Spalten) enthalten die mit einem { getrennt sind.
Ja wie jetzt ?? das { ist das Trennteichen der Spalten oder nur für diese innerhalb der Spalte A ??Ich habe eine .csv Datei. In der Spalte A sind mehrere Datensätze(94 Spalten) enthalten die mit einem { getrennt sind.
Ich möchte jetzt prüfen, ob die Datei auch vollständig ist, sprich, ich möchte prüfen, ob 94 mal das { in
der Spalte A enthalten ist.
Dito, das Trennzeichen der CSV mehrmals in einer einzigen Spalte ?? Konfus ...der Spalte A enthalten ist.
Die Datei hat 94 Spalten und mehrere tausend Zeilen. Das ist immer unterschiedlich.
OkKlär uns mal mit einer Beispielzeile deiner CSV auf , hat diese auch Überschriften etc. pp
Danke.
Gruß jodel32
Na das geht viel, viel einfacher und schneller ...
Gruß jodel32
$csv = Import-CSV 'c:\test.csv' -Delimiter '{'
If (($csv | gm -Membertype Noteproperty).length -eq 95){
Write-Host "Anzahl der Spalten OK"
} else {
Write-Host "Datei hat nicht die geforderte Anzahl an Spalten !" -ForegroundColor Yellow
}
Zitat von @114298:
Hier läuft der aber nicht alle Zeilen durch sonder prüft nur ob die Spalten da sind.
Dann sollte man das auch explizit erwähnen Hier läuft der aber nicht alle Zeilen durch sonder prüft nur ob die Spalten da sind.
Ist aber kein Beinbruch ... wie heißt die letzte Spalte ? Dann mach ich dir den Code ...
$csv = Import-CSV 'c:\test.csv' -Delimiter '{'
$rows_not_ok = $csv | ?{$_.CQ -eq ''}
write-host "Folgende Zeilen sind nicht vollständig:"
$rows_not_ok
Siehe oben....
So geht's alternativ aber auch, falls die Datei nicht CSV Konform sein sollte :
So geht's alternativ aber auch, falls die Datei nicht CSV Konform sein sollte :
$csv = gc "C:\temp\daten.csv"
$rows_not_ok = $csv | select -skip 1 | ?{$_.Split("{").Length -lt 95}
if ($rows_not_ok){
write-host "Folgende Zeilen sind nicht OK:" -ForegroundColor Yellow
$rows_not_ok
}
$csv = gc "C:\temp\daten.csv"
1..($csv.Length - 1) | %{
if ($csv[$_].Split("{").Length -lt 95){
write-host "Zeile: $($_ + 1) ist nicht vollständig"
}
}