Windows PowerShell で使用される丸かっこ ( ( ~ ) ) について説明します。
式を表す
このサンプルでは、1 + 2 が確実に式であることを明示しています。これは Write-Output などの引数は通常は文字列として解釈されるためです。例えば、1 + 2 のような式を引数にした場合、1, +, 2 というそれぞれの文字をスペース区切りで引き渡されていると解釈されます。明示的に式であること示すために丸カッコでくくります。尚、Write-Output を省略すると、丸カッコがなくても式として解釈されます。
Write-Output (1 + 2)
式を表す
このサンプルは、上記のケースの文字列のパターンです。丸カッコでくくらないと、"ABC", "+", "XYZ" のそれぞれの引数として解釈されます。
Write-Output ("ABC" + "XYZ")
オブジェクトを表す
数値はそのままでオブジェクトとしては扱えません。(この表現が正しいかは不明ではありますが...) 丸カッコでくくることによって、int 型のオブジェクトとして扱うことができるため、変数に代入しなくてもメソッドの実行ができます。このサンプルでは、数値をオブジェクトとして扱っています。
(1).GetType()
コマンドの実行結果をオブジェクトとして扱う
このサンプルでは、dir エイリアスの実行結果をオブジェクトとして扱っています。
(dir).GetType()
( ~ ) で囲まれた部分の計算の優先度が上げる
このサンプルでは、2 + 5 の計算の優先度が上がります。
10 * (2 + 5) / 2 - 3
メソッド (.NET Framework のスタティックメソッドなど) に引き渡す引数を指定する
このサンプルでは、Concat メソッドにふたつの引数を渡しています。
[System.String]::Concat("ABC", "XYZ")