我正在尝试-match
CSV文件中的多个字符串。下面的CSV示例:
Hostname,IpAddress,Domain
x200apple300,1.2.3.4,contoso.local
x200banana300,1.2.3.5,contoso.local
x200orange300,1.2.3.6,contoso.local
x200kiwi300,1.2.3.7,contoso.local
示例代码:
$csv = Import-Csv "C:\Files\csvExample.csv"
$csv | Where-Object {$_.Hostname -match "kiwi"}
# All OK. Now match multiple hostnames.
$csv | Where-Object {$_.Hostname -match "kiwi", "orange"}
# Not working.
$csv | Where-Object {$_.Hostname -contains "apple", "banana"}
# Not working
在此示例中,如何匹配多个主机名?我在做什么错了。
答案 0 :(得分:3)
Match使用正则表达式,因此您可以使用or
运算符过滤多个值。
$csv = Import-Csv "C:\Files\csvExample.csv"
$csv | Where-Object {$_.Hostname -match "kiwi|orange|banana"}
答案 1 :(得分:3)
-match
运算符在右侧需要一个正则表达式。我不确定$Value -match $A, $B
是什么意思;我看不到它没有记录,而且似乎总是从我的输入中返回false。
$_.Hostname -contains "apple", "banana"
向后。您需要{$_.Hostname -in "apple", "banana"}
还是{"apple", "banana" -contains $_.Hostname}
。