Powershell Select-String -pattern -notMatch

时间:2013-08-12 09:45:04

标签: powershell select-string

我有行 -

echo $LocalAdmins
    Administrator
    Domain-Administrator
    daemon
    SomeUser
  • 尽管可能存在情况,但1-3行应该相同 域管理员不存在,所以简单地计算行不会 帮助,因为用户可能隐藏在第3行。

  • 第4行字符串更改,可能有4行以上 以及完全没有4号线。

  • 我不确定线路是否会改变位置。

我需要获取字符串-notMatch“Administrator”,“Domain-Administrator”,“daemon”。即,我需要此列表中的用户名。

有没有办法在-andMatch中使用多个-notMatch?目前我坚持只使用一个-notMatch的代码。我不能使用-Match,因为列表中可能有2个以上的用户。

$LocalAdmins | Select-String -pattern "Administrator" -notMatch

2 个答案:

答案 0 :(得分:18)

喜欢这个吗?

$LocalAdmins | select-string -Pattern 'Administrator|daemon' -NotMatch | select -expa line

-pattern接受REGEX。您可以使用|(或正则表达式运算符)添加其他单词以满足您的需求。

答案 1 :(得分:2)

假设$LocalAdmins是一个数组,你可以这样做:

$exclude = 'Administrator', 'Domain-Administrator', 'daemon'
$LocalAdmins | Where-Object { $exclude -notcontains $_ }