2016-10-12 15 views
2

-orの条件を指定する簡単な方法はありますか?たとえば、if ($returnValue -eq 0 -or $returnValue -eq 5)です。私はむしろif ($returnValue -eq 0 -or 5)のようなものを書いて、$ returnValueの2つの可能な値をテストしたいと思います。もちろんそれは何か他のことをしている。 普通、正規表現を使用して値を文字型に強制することを考えました: if ($returnValue -match '0|5') これで私の質問に答えたので、他のアイデアはありますか?シンプルなPowershell OR条件の構文

+1

シンプルまたはそれ以上の鈍さ? –

答えて

4

Iは、使用する-contains又は適切な-in

if ((0,5) -contains $returnValue) 

又は

if ($returnValue -in (0,5)) 

-inはPowerShellのV3で添加しました。

正規表現「解決策」は、意図しない副作用を起こして明瞭性を低下させる可能性があるため、非常にお勧めします。例えば、51 -match '0|5'$trueです。

だけで、複数の行にあなたのif声明をフォーマット考えてみましょう:

if (
    $returnValue -eq 0 -or 
    $returnValue -eq 5 
) 

私はまだあなたが達成しようとしている何のために-contains-inが好きなのに。

$validVals = @(
    0, 
    5, 
    17 
) 

if ($validVals -contains $returnVal) { 
    # ... 
} 

if ($returnVal -in $validVals) { 
    # ... 
} 
+0

私は正規表現の解決策がこれにはうまくいかないことに同意します。ありがとう。 – Roman