检查CSV是否存在不匹配的对象?

时间:2018-07-12 15:29:14

标签: powershell csv if-statement powershell-v3.0 verification

可能是一个非常基本的问题,但初步搜索并没有得到太多回报。我正在编写一个脚本,该脚本使用$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)显然会为除匹配的那一行之外的每一行返回一个值。我猜我应该使用嵌套的if语句,但是由于自学,我不确定执行此操作的最佳方法是什么。谢谢。

1 个答案:

答案 0 :(得分:1)

我能想到您可以做的几件事。

选项1:使用Left "too few bytes\nFrom:\tdemandInput\n\n" 运算符。 [不建议使用,因为它有一些正则表达式约束,但无论如何我都会将其作为一个选项呈现]

-match

选项2:设置标记

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