检查 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
}
可能是一个非常初级的问题,但初步搜索并没有 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
}