将字符串与包含字符串列表的文件匹配,以便在powershell

时间:2017-12-12 19:00:19

标签: powershell

我希望将名称与文本文件匹配,并希望在整个文件中找不到名称时删除一些内容。我试过foreach但是当检查10个名字的列表并且9不匹配时,它运行9次以删除。我希望它只是根据提供的名称检查整个文件,如果名称不匹配则删除。

$UIDsInFile = Get-Content -Path ".\Data\UserIDs.txt" -ErrorAction SilentlyContinue
foreach ($un in $UIDsInFile)
{
if ($un -eq $llusername)
{
    RemoveAllAddins
    InstallAddin
}
}

if ($UIDsInFile -notcontains $llusername)
{
    RemoveAllAddins

}

1 个答案:

答案 0 :(得分:1)

在你的第二个If声明中看起来你已经拥有了你想要的东西。更简单的版本是:

#Load list of user names
$UIDsInFile = Get-Content -Path ".\Data\UserIDs.txt" -ErrorAction SilentlyContinue

#Remove all addins
RemoveAllAddins

#Add them back if the user is in the list of user names
if($UIDsInFile -contains $llusername){
    InstallAddin
}