ja-JP/about_Operators.help.txt

TOPIC
    about_Operators

簡単な説明
    PowerShell でサポートされている演算子について説明します。

詳細な説明
    演算子は、値を計算したり、値を比較したり、コマンドの出力を別の
    コマンドへ渡したりするために使用する言語要素です。PowerShell は
    いくつかの種類の演算子を提供します。以下に種類ごとに説明します。

    算術演算子
        記号: + - * / %

        算術演算子は、コマンドや式の中で値を計算するために使用します。
        これらの演算子を使うと、値の加算、減算、乗算、除算を行ったり、
        除算の剰余 (モジュロ) を計算したりできます。

        加算演算子 (+) は要素を連結します。乗算演算子 (*) は要素を
        指定した数だけ複製して返します。

        ビット演算子 (-band, -bor, -bxor, -bnot, -shl, -shr) は、値の
        ビットパターンを操作します。

        詳細は about_Arithmetic_Operators を参照してください。

    代入演算子
        記号: = += -= *= /= %=

        代入演算子は、変数への値の代入、変更、追加を行うために使用します。
        算術演算子と代入演算子を組み合わせて、算術演算の結果を変数に
        代入することもできます。

        詳細は about_Assignment_Operators を参照してください。

    比較演算子
        記号: -eq -ne -gt -lt -le -ge

        比較演算子は、値を比較して条件をテストするために使用します。
        たとえば、2 つの文字列値を比較して等しいかどうかを判定できます。

        -eq 等しい
        -ne 等しくない
        -gt より大きい
        -ge 以上
        -lt より小さい
        -le 以下

        パターンマッチング演算子 (-match, -notmatch, -replace) は
        正規表現を使用します。

        ワイルドカード演算子 (-like, -notlike) は、* や ? などの
        ワイルドカードを使用します。

        包含演算子 (-in, -notin, -contains, -notcontains) は、テスト値が
        参照セットに含まれるかどうかを判定します。

        型比較演算子 (-is, -isnot) は、オブジェクトが指定した型かどうかを
        判定します。

        詳細は about_Comparison_Operators を参照してください。

    論理演算子
        記号: -and -or -xor -not !

        論理演算子は、条件文を 1 つの複雑な条件にまとめるために
        使用します。たとえば、論理 -and 演算子を使って 2 つの異なる
        条件を持つオブジェクトフィルターを作成できます。

        詳細は about_Logical_Operators を参照してください。

    リダイレクト演算子
        記号: > >> 2> 2>> 2>&1

        リダイレクト演算子は、コマンドや式の出力をテキストファイルへ
        送るために使用します。リダイレクト演算子は (パラメーターを
        指定しない) Out-File コマンドレットと同様に動作しますが、
        エラー出力を指定したファイルへリダイレクトすることもできます。

        詳細は about_Redirection を参照してください。

    分割演算子と結合演算子
        記号: -split -join

        -split 演算子は文字列を複数の部分文字列に分割します。-join
        演算子は複数の文字列を 1 つの文字列に連結します。

        詳細は about_Split および about_Join を参照してください。

    型演算子
        記号: -is -isnot -as

        型演算子は、オブジェクトの .NET 型を調べたり変更したりする
        ために使用します。

        詳細は about_Type_Operators を参照してください。

    単項演算子
        記号: ++ -- -

        単項の ++ 演算子と -- 演算子は値をインクリメントまたは
        デクリメントするために使用し、- は符号反転に使用します。
        たとえば、変数 $a を 9 から 10 へインクリメントするには
        $a++ と入力します。

    特殊演算子
        特殊演算子は、他の演算子の種類に当てはまらない特定の用途に
        使用します。

        グループ化演算子 ( )
            式の中で演算子の優先順位を上書きします。
            例: (1 + 2) / 3

            パイプラインの先頭で式をかっこで囲むと、式の結果が
            常に列挙されます。

            代入文をかっこで囲むと、代入された変数の値が引き継がれ、
            より大きな式の中で使用できます。

            ($var = 1 + 2) # 結果は 3
            ($var = 1 + 2) -eq 3 # 結果は True

        サブ式演算子 $( )
            1 つ以上の文の結果を返します。単一の結果の場合はスカラー値を
            返し、複数の結果の場合は配列を返します。式の中で別の式を
            使いたいときに使用します。文字列内で式を展開する用途に
            よく使われます。

            "今日は $(Get-Date)"

        配列サブ式演算子 @( )
            1 つ以上の文の結果を配列として返します。結果は常に
            0 個以上のオブジェクトを含む配列になります。

            $list = @(Get-Process)

        ハッシュテーブルリテラル構文 @{}
            配列サブ式と似ていますが、この構文はハッシュテーブルを
            宣言するために使用します。

        呼び出し演算子 &
            コマンド、スクリプト、スクリプトブロックを実行します。
            呼び出し演算子 (起動演算子とも呼ばれます) を使うと、変数に
            格納され、文字列やスクリプトブロックで表されたコマンドを
            実行できます。呼び出し演算子は子スコープで実行されます。

            $c = "Get-ExecutionPolicy"
            & $c

        バックグラウンド演算子 &
            直前のパイプラインを PowerShell ジョブとしてバックグラウンドで
            実行します。この演算子は Start-Job と機能的に同等です。
            Job オブジェクトを返し、Receive-Job や Remove-Job と
            組み合わせて使用できます。

            Get-Process -Name pwsh &

        キャスト演算子 [ ]
            オブジェクトを指定した型に変換または制限します。変換できない
            場合、PowerShell はエラーを生成します。

            [datetime] '2/20/88'

        コンマ演算子 ,
            二項演算子として使うと配列を作成、または作成中の配列に要素を
            追加します。式モードで単項演算子として使うと、要素を 1 つだけ
            持つ配列を作成します。

            $myArray = 1,2,3
            $single = ,1

        ドットソース演算子 .
            スクリプトを現在のスコープで実行します。これにより、
            スクリプトが作成する関数、エイリアス、変数が現在のスコープに
            追加されます。

            . C:\scripts\sample.ps1

        書式演算子 -f
            .NET の複合書式設定機能へのアクセスを提供します。複合書式
            文字列は、固定テキストと、書式項目と呼ばれるインデックス付きの
            プレースホルダーで構成されます。

            "{0} {1,-10} {2:N}" -f 1,"hello",[Math]::PI

        インデックス演算子 [ ]
            配列やハッシュテーブルなどのインデックス付きコレクションから
            オブジェクトを選択します。配列のインデックスは 0 から始まる
            ため、最初のオブジェクトは [0] で参照します。

            $a = 1, 2, 3
            $a[0] # 1
            $a[-1] # 3

        パイプライン演算子 |
            直前のコマンドの出力を、後続のコマンドへ渡します。出力が複数の
            オブジェクト (コレクション) の場合、パイプライン演算子は
            オブジェクトを 1 つずつ渡します。

            Get-Process | Get-Member

        パイプラインチェーン演算子 && と ||
            左側のパイプラインの成功または失敗に基づいて、右側の
            パイプラインを条件付きで実行します。&& は左側が成功した場合に、
            || は左側が失敗した場合に右側を実行します。

            Get-Process notepad && Stop-Process -Name notepad
            npm install || Remove-Item -Recurse ./node_modules

        範囲演算子 ..
            連続する整数または文字の配列を表すために使用します。範囲
            演算子でつないだ値が、範囲の開始値と終了値を定義します。

            1..10
            'a'..'f'

        メンバーアクセス演算子 .
            オブジェクトのプロパティとメソッドにアクセスします。メンバー名
            は式にすることもできます。存在しないプロパティを読み取ろうと
            した場合や、プロパティの getter メソッドが例外をスローした
            場合、PowerShell はエラーをスローせずに $null を返します。

            (Get-Process powershell).Kill()

        静的メンバー演算子 ::
            .NET クラスの静的プロパティとメソッドを呼び出します。静的
            メンバーを調べるには、Get-Member コマンドレットの -Static
            パラメーターを使用します。

            [datetime]::Now

        三項演算子 ? <真の場合> : <偽の場合>
            単純な条件分岐において、if-else 文の代わりとして使用できます。

            $message = (Test-Path $path) ? "見つかった" : "見つからない"

        null 合体演算子 ??
            左側のオペランドが null でない場合はその値を返します。それ以外
            の場合は右側のオペランドを評価して結果を返します。左側が
            null でない場合、右側のオペランドは評価されません。

            $x = $null
            $x ?? 100 # 結果は 100

        null 合体代入演算子 ??=
            左側のオペランドが null と評価される場合にのみ、右側の
            オペランドの値を左側のオペランドに代入します。左側が null で
            ない場合、右側のオペランドは評価されません。

            $x = $null
            $x ??= 100
            $x # 結果は 100

        null 条件演算子 ?. と ?[]
            メンバーアクセス (?.) または要素アクセス (?[]) の操作を、
            オペランドが null でない場合にのみ適用します。null の場合は
            null を返します。PowerShell では ? が変数名の一部になり得る
            ため、これらの演算子を使うときは ${a} のように変数名を中かっこ
            で囲む必要があります。

            ${a}?.PropName
            ${a}?[0]

関連項目
    about_Arithmetic_Operators
    about_Assignment_Operators
    about_Comparison_Operators
    about_Logical_Operators
    about_Operator_Precedence
    about_Type_Operators
    about_Split
    about_Join
    about_Redirection

----
原文: PowerShell-Docs (CC BY 4.0) の翻訳 / PSHelpJaJP