检查 CSV 对象是否不匹配?

Check CSV for object not matching?

可能是一个非常初级的问题,但初步搜索并没有 return 太多。我正在编写一个脚本,该脚本将 $CSC(用户输入)与名为 "CSC" 的 .csv 对象进行比较,然后根据该对象填充相关信息。

$CSC = "1100 4WWW"   #Hardcoded value to test against #CSC are always <#### #ChChCh>
$roster = Import-Csv <my path>

Foreach ($row in $roster) {
    If ($CSC -eq $row.CSC) { 
        $Department = $row.Department
        $Division = $row.Division
        $Street = $row.Street
        $City = $row.City
        $State = $row.State
        $Zipcode = $row.Zipcode
        $OfficePhone = $row.Phone
        $Country = $row.Country
    } Else {    }
}

这工作正常,但我如何检查用户输入的 $CSC 是否与列表中的不匹配?

制作 else 或制作 elseif ($CSC -ne $row.CSC) 显然 return 除了匹配行之外的每一行都有一个值。我猜我应该使用嵌套的 if 语句,但由于自学,我不确定最好的方法是什么。谢谢。

我能想到一些你可以做的事情。

选项 1:使用 -match 运算符。 [不推荐,因为它有一些正则表达式限制,但无论如何我都会将其作为一个选项提供]

$CSC = "1100 4WWW"   #Hardcoded value to test against #CSC are always <#### #ChChCh>
$roster = Import-Csv <my path>

if ($roster -match $CSC)
{
    Foreach ($row in $roster) {
        If ($CSC -eq $row.CSC) { 
            $Department = $row.Department
            $Division = $row.Division
            $Street = $row.Street
            $City = $row.City
            $State = $row.State
            $Zipcode = $row.Zipcode
            $OfficePhone = $row.Phone
            $Country = $row.Country
        } Else {    }
    }
}
else
{
   #your 'not a match' code goes here
}

选项 2:设置标志

$CSC = "1100 4WWW"   #Hardcoded value to test against #CSC are always <#### #ChChCh>
$roster = Import-Csv <my path>

$flag = $false
Foreach ($row in $roster)
{
    If ($CSC -eq $row.CSC)
    { 
        $Department = $row.Department
        $Division = $row.Division
        $Street = $row.Street
        $City = $row.City
        $State = $row.State
        $Zipcode = $row.Zipcode
        $OfficePhone = $row.Phone
        $Country = $row.Country

        $flag = $true
    }
    Else {    }
}

If (!$flag)
{
    #your 'not a match' code goes here
}