PowerShellを初めて使用していて、CSVファイルをループして各行の列数を返そうとしています。その列数を最初の行と比較し、何かがそれと等しくないようにします。この場合、カンマは何も置き換えないでください。変更を加えて新しいファイルを作成します。あなたの意図が無効であるCSVファイルのどの行をチェックしている場合CSVファイルをループして各行の列数を確認する
$csvColumnCount = (import-csv "a CSV file" | get-member -type NoteProperty).count
$CurrentFile = Get-Content "a CSV file" |
ForEach-Object { $CurrentLineCount = import-csv "a CSV file" | get-member -type NoteProperty).count
$Line = $_
if ($csvColumnCount -ne $CurrentLineCount)
{ $Line -Replace "," , "" }
else
{ $Line } ;
$CurrentLineCount++} |
Set-Content ($CurrentFile+".out")
Copy-Item ($CurrentFile+".out") $ReplaceCSVFile
何が問題なのですか? – DeanOC
私はそれが正しく各列の列の数を数えないと思う。私が使用しているテストCSVファイルには、ヘッダー行の列よりも少ない数の行があります。このスクリプトは、ファイル全体のカンマを削除しています。 – leo
行のプロパティが空であるか不足しているかどうかをテストしますか?これらの行を変更しますか? – xXhRQ8sD2L7Z