2017-12-12 8 views
0

名前をテキストファイルと照合したいときに、名前がファイル全体で見つからない場合は削除したいことがいくつかあります。私はforeachを試しましたが、10の名前と9つの名前のリストをチェックすると、9回実行されて削除されます。私はそれが提供された1つの名前に対してファイル全体をチェックし、名前が一致しない場合は削除することができます。文字列のリストと文字列を一致させてpowershellでアクションを実行する

$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

2番目の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 
} 
+0

あなたは男です!そんな簡単なやり方で、あなたが私が過錯関だった私の友達のために何の理由もないことを明らかにしました。そんなに兄さんありがとう!ハッピーホリデー! – NYPkgFellos

関連する問題