В PowerShell синтаксис для , если
выглядит следующим образом:
if (<test1>)
{<statement list 1>}
[elseif (<test2>)
{<statement list 2>}]
[else
{<statement list 3>}]
Другое синтаксическое правило состоит в том, что для подвыражений , вам нужно использовать круглые скобкиследующим образом:
write-output (get-date)
Таким образом, при объединении этих двух правил я ожидаю, что проверка для некоторого пути должна быть написана с двумя наборами круглых скобок следующим образом:
if ((Test-Path ...)) {
# do something
}
Однако это также работает:
if (Test-Path ...) {
# do something
}
и просто для полноты, это неработает:
if (!Test-Path ...) {
# do something
}
(здесь вам нужно будет, как обычно, заключить подвыражение в круглые скобки).
Может ли кто-нибудь объяснить правила синтаксиса, которые применяются здесь, и почему я могу использовать тест ЕСЛИ только с одной скобкой? Это какая-то магия PowerShell или я неправильно понимаю основные правила синтаксиса?