PowerShell の構文if
は次のとおりです。
if (<test1>)
{<statement list 1>}
[elseif (<test2>)
{<statement list 2>}]
[else
{<statement list 3>}]
もう 1 つの構文規則は、部分式の場合、次のように括弧を使用する必要があるというものです。
write-output (get-date)
したがって、これら 2 つのルールを組み合わせると、いくつかのパスのテストは、次のように 2 組の括弧で記述する必要があると予想されます。
if ((Test-Path ...)) {
# do something
}
ただし、これも機能します。
if (Test-Path ...) {
# do something
}
完全を期すために、これは機能しません。
if (!Test-Path ...) {
# do something
}
(ここでは、通常どおり部分式を括弧で囲む必要があります)。
ここで適用される構文規則と、1 つの括弧だけで IF テストを使用できる理由を説明できる人はいますか? PowerShell マジックですか、それとも基本的な構文規則を誤解していますか?