我的循环出现问题:
$array =@();
foreach($list in $Lists | Where-Object{"History", "Historic" -notmatch $list.Title})
{
$result = new-object psobject
$result | Add-Member -MemberType noteproperty -Name Title -value $list.Title
$array += $result
Write-Host $list.Title
}
我只想保存标题中不包含“历史记录”或“历史记录”的结果。
例如,“Workflow blablabla - Historic”不会被保存。
无法找到我的条件的正确语法:返回所有结果或根本不返回任何结果。
答案 0 :(得分:5)
试试这个:
$result = $lists | ? {$_.Title -notmatch 'Histor(y|ic)'} | Select Title
你的where子句是正则表达式,在-notmatch
的右侧有一个正则表达式。
这也有效:
$result = $lists | ? {$_.Title -notmatch 'History' -or $_.Title -notmatch 'Historic'} | Select Title