W PowerShell składnia if
jest tak:Skąd pochodzi `jeśli (Ścieżka testowa ...)` faktycznie działa?
if (<test1>)
{<statement list 1>}
[elseif (<test2>)
{<statement list 2>}]
[else
{<statement list 3>}]
Kolejna reguła składnia jest dla podwyrażeń, trzeba użyć nawiasów tak:
write-output (get-date)
Więc z tych dwóch reguły w połączeniu, oczekiwałbym, że test dla pewnej ścieżki musi być napisany z dwoma zestawami nawiasów takich jak ten:
if ((Test-Path ...)) {
# do something
}
Jednak ta działa również:
if (Test-Path ...) {
# do something
}
i tylko ze względu na kompletność, to nie praca:
if (!Test-Path ...) {
# do something
}
(tu trzeba by zawinąć podwyrażenie w nawiasie jak zwykle).
Czy ktoś może wyjaśnić zasady składni, które mają tu zastosowanie i dlaczego mogę użyć testu IF tylko z jednym nawiasem? Czy to jest jakaś magia PowerShell, czy też nie rozumiem podstawowych zasad składni?
Spróbuj tego: 'if true'. Da Ci to błąd * parsera *. Nie jestem ekspertem, ale wydaje mi się, że nawiasy są tutaj konstruktem języka, a nie operatorem podwyrażania. – Borek
@Borek: W PowerShell myślę, że musisz napisać: , jeśli $ True – wunth