可能是一个非常基本的问题,但初步搜索并没有得到太多回报。我正在编写一个脚本,该脚本使用$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语句,但是由于自学,我不确定执行此操作的最佳方法是什么。谢谢。
答案 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
}