
114298
01.06.2015, aktualisiert um 14:26:17 Uhr
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 273493
Url: https://administrator.de/forum/inhalt-einer-csv-mit-powershell-pruefen-273493.html
Ausgedruckt am: 28.04.2025 um 10:04 Uhr
10 Kommentare
Neuester Kommentar

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"
}
}