は、if
ため構文はようにある:これら2つとので`if(Test-Path ...)`が実際にどのように機能しますか? PowerShellでは
write-output (get-date)
:
if (<test1>)
{<statement list 1>}
[elseif (<test2>)
{<statement list 2>}]
[else
{<statement list 3>}]
別の構文規則は、部分式のために、あなたはこのような括弧を使用する必要があるということですルールを組み合わせると、私はいくつかのパスのテストがこのような2組のかっこで書かれる必要があると期待します:
if ((Test-Path ...)) {
# do something
}
しかし、これも動作します:
if (Test-Path ...) {
# do something
}
とちょうど完全性のために、このが仕事しません:
if (!Test-Path ...) {
# do something
}
(ここでは、あなたが部分式をラップする必要があります通常のようにかっこ内に)。
ここで適用される構文規則は誰でも説明できますが、どのようにしてIFテストを1つの括弧でのみ使用できますか?それはPowerShellの魔法ですか?基本的な構文規則を誤解していますか? if
は部分式を定義します(括弧はTest-Path
の周りに必要とされた場合は、その後、私たちは周りの括弧$num -eq 5
およびその他すべての表現を必要とする)の後に
これを試してください:「真なら」。 *パーサ*エラーが発生します。私は専門家ではありませんが、これは私にはカッコが実際には副次演算子ではなく、ここでは言語構築物であると思われます。 – Borek
@Borek:PowerShellでは、書く必要があるのは if $ True – wunth