2016-05-03 3 views
1

У меня есть вопрос синтаксиса быстрой командной строки. У меня есть следующий цикл в powershell. Я хотел бы знать, какая ценность существует (что легко). Я могу использовать либо «Чтение», либо «Посетитель» для назначения разрешения. Я могу сделать 2 заявления if, но если есть более разумный способ, я бы предпочел использовать это.Петля. Определите, существует ли какое-либо значение

if(($listRA.Member.Name) -ne $authUsers) 
{ 
    foreach($spRoleDefinition in $rc) 
    { 
     if(($spRoleDefinition.Name -eq "Read") -OR ($spRoleDefinition.Name -eq "SP Visitor")) 
     { 
      Need to determine which one exists 
      Adding a user code.... 
      write-host $spRoleDefinition.Name 
     } 
    } 

} 

ответ

1

Use a switch statement:

if(($listRA.Member.Name) -ne $authUsers) 
{ 
    foreach($spRoleDefinition in $rc) 
    { 
     switch($spRoleDefinition.Name) 
     { 
      'Read' { 
       # do Read stuff 
       break; 
      } 

      'SP Visitor' { 
       # do SP Visitor stuff 
       break; 
      } 
     } 
    } 
} 
+0

Благодаря Brian для наконечника. Я это оценил. –

+0

Что делать, если оба существуют. Потому что, если оба существуют, я буду использовать SP Visitor для добавления разрешения. Если существует только Read, я буду использовать Read. Код такой же для читателя и посетителя, который добавляет пользователя с этим уровнем разрешений –

+0

@NinjaCowgirl в '' '' '' '' 'используется' -eq', поэтому, если значение может быть как-то таким, то это условие никогда не удовлетворило бы ваш 'if' заявление. Какой тип данных '$ spRoleDefinition.Name'? Каковы возможные значения? – briantist

Смежные вопросы