Как искать импортированные значения ячеек CSV для каждой строки - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь импортировать CSV, искать значения ячеек (столбцы) в каждой строке, а затем найти и подсчитать любые нулевые или пустые значения. Затем, если число достигает 13, сделайте X. Однако, когда я запускаю этот код, кажется, что значения ячейки / столбца - это один объект, а не отдельные значения для каждого столбца? Как я могу искать отдельные значения ячеек в строке?

ОБРАЗЕЦ КОДА

$DataFileLocation = "\\Server\Output.csv"
$sheet = import-csv $DataFileLocation
$count = 0
foreach ($row in $sheet) {
    foreach ($column in $row) {
        Write-Host "Searching value: $column"
        if ($column -eq $null -or " ") {
            Write-Host "Found a blank!"
            $count++
        }
    }
    $count
    if ($count -eq 13) {
        Write-Host "Found match!" -ForegroundColor Red
    }
    $count = 0
}

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

или что-то вроде

$DataFileLocation = "\\Server\Output.csv"
$sheet = import-csv $DataFileLocation
$count = 0
foreach ($row in $sheet){
  ($row | Get-Member) | ? { $_.MemberType -eq "NoteProperty" } | % { 
    $n = $_.Name; "$n = $($row."$n")" 
  }
}
0 голосов
/ 06 сентября 2018

Каждый $row является PSCustomObject:

PS > $row.GetType().Name
PSCustomObject

Доступ к базовым значениям свойств:

foreach ($column in $row.psobject.Properties.Value){
...
}

Проверьте, является ли $column $null, пустым или пробелом:

if ([System.String]::IsNullOrWhiteSpace($column)) { ... }
...