使用匹配运算符时有多个异常

时间:2016-02-03 10:35:30

标签: powershell match powershell-v2.0

我有这部分代码:

$exception = "VM"

ForEach($item in $list) {

IF ($item -match $exception) { $invalidlist += $item }
ELSE { $validlist += $item }

}

当仅将1个项目分配给变量$exception时,其作为意图使用。 问题是,我需要变量包含多个项目,例如:$exception = "VM","TM","TMP"

如何搜索$exception中任何项目的匹配项?

提前致谢。

编辑:$list是使用以下方式创建的:

$list = Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan 548.00:00:00

1 个答案:

答案 0 :(得分:1)

关于更新的评论,您的$list是AD对象数组: 假设您关心计算机名称,您应该将Name属性添加到$item - > $item.name如下例所示:

*如果您只想要返回计算机名而不是完整对象,请将$ item.name也添加到无效变量中,例如$invalidlist += $item.name

$invalidlist = @()
$validlist = @()
$exception = "VM","TM","TMP"
$list = Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan 548.00:00:00   

ForEach($item in $list) {

## if the item in $exception are equal to the $item name you can use the contains operator
## otherwise you can use -match
IF ($exception -contains $item.name) { $invalidlist += $item }
ELSE { $validlist += $item }
}