У меня есть следующие If
блок, который в сценарии входа в систему, который я переписывания:переключатель против If-Else Performance
If ($distinguishedname -match 'Joe Bloggs') {
Map-Drive 'X' "\\path\to\drive"
}
If ($distinguishedname -match 'Steve Bloggs') {
Map-Drive 'X' "\\path\to\drive"
}
If ($distinguishedname -match 'Joe Jobs') {
Map-Drive 'X' "\\path\to\drive"
}
который, очевидно, должен быть переписан как If/Else
заявление (как каждый пользователь только 1 имя) Тем не менее, я предпочитаю вид следующего switch -Regex
метода:
switch -Regex ($distinguishedname) {
'Joe Bloggs' {Map-Drive 'X' "\\path\to\drive"; break}
'Steve Bloggs' {Map-Drive 'X' "\\path\to\drive"; break}
'Joe Jobs' {Map-Drive 'X' "\\path\to\drive"; break}
}
Мой вопрос - будет с помощью переключателя таким образом, имеют какое-либо влияние на производительность этой функции? Это должно быть лучше, чем указано выше (if/if/if
), поскольку не каждая возможность оценивается каждый раз, но будет ли switch
быстрее, чем ifelse/ifelse/else
?
Возможно, вы захотите использовать группы, а не тестировать пользователей один за другим, но что я не применим к вашей ситуации. – sodawillow
@sodawillow Спасибо за ваш комментарий. Я тестирую группы в другом месте сценария, но установка, которая выполняется здесь, уникальный для этих пользователей, поэтому это кажется лучшим способом в моем случае – Bassie
[Связанный, если не обман] (http://stackoverflow.com/questions/445067/if-vs-switch-speed) – Matt