我希望将名称与文本文件匹配,并希望在整个文件中找不到名称时删除一些内容。我试过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
}
答案 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
}