Lesson 6

演算子

Lesson 6 Chapter 1
演算子

PowerShellにおける演算子とは、値を操作するための特殊な記号やキーワードです。数学的な演算子(たとえば+、-、*、/)や比較演算子(たとえば==、!=、)などが含まれます。これらの演算子を使用することで、変数や式を計算し、条件をテストし、データを操作することができます。

このLessonでは、PowerShellにおける演算子の種類と、それらを使用する方法について説明します。 後のLesson(制御構文など)では必須の知識になりますので、しっかりと理解してください。

演算子は、変数やリテラル値、他の式などのオペランドに適用されます。演算子の種類に応じて、オペランドの数が異なることがあります。たとえば、単項演算子(たとえば!)は1つのオペランドに対して適用され、2項演算子(たとえば+)は2つのオペランドに対して適用されます。 リテラル値とは、コード内に直接記述された値のことで、変数のようにデータの保存場所を持ちません。たとえば、「2 + 3」という式では、2と3がリテラル値であり、演算子+が二つのリテラル値に適用されることによって、計算が行われます。

PowerShellには、様々な種類の演算子があります。これには、算術演算子、ビット演算子、論理演算子、比較演算子、代入演算子などが含まれます。それぞれの演算子は、特定の操作を実行するために設計されています。

例えば、算術演算子は、数値データを加算、減算、乗算、除算するために使用されます。比較演算子は、2つの値を比較して、等しいかどうか、またはどちらが大きいか小さいかを判断するために使用されます。代入演算子は、変数に値を割り当てるために使用されます。

PowerShellでは、演算子を組み合わせることで、複雑な式を作成することができます。演算子の優先順位もあるため、演算子を組み合わせる際には、適切な優先順位も考慮する必要があります。

リテラル

「リテラル」とは、プログラムで扱うデータの値そのものを表すために使用される、直接的な値のことを指します。 例えば、整数の値「3」や文字列の値「Hello World」といったものが、リテラルです。

オペランド

「オペランド」とは、プログラムで扱う値やデータのことを指します。例えば、計算をする際に使われる数値や、文字列、変数などがオペランドにあたります。プログラムにおいて演算子(+、-、*、/ など)と一緒に使われ、計算処理や条件分岐などに重要な役割を担っています。

Lesson 6 Chapter 2
算術演算子

PowerShellにおける算術演算子とは、数値データを加算、減算、乗算、除算するための演算子のことです。

以下は、PowerShellで使用できる主要な算術演算子の例です。

加算演算子(+)

2つの数値を加算する演算子です。例えば、次のコマンドは、変数$aと$bの値を加算し、結果を変数$cに代入します。

poewrshell
$a = 10
$b = 5
$c = $a + $b

減算演算子(-)

2つの数値を減算する演算子です。例えば、次のコマンドは、変数$aから変数$bを減算し、結果を変数$cに代入します。

poewrshell
$a = 10
$b = 5
$c = $a - $b

乗算演算子(*)

2つの数値を乗算する演算子です。例えば、次のコマンドは、変数$aと$bの値を乗算し、結果を変数$cに代入します。

poewrshell
$a = 10
$b = 5
$c = $a * $b

除算演算子(/)

2つの数値を除算する演算子です。例えば、次のコマンドは、変数$aを変数$bで除算し、結果を変数$cに代入します。

poewrshell
$a = 10
$b = 5
$c = $a / $b

剰余演算子(%)

2つの数値の剰余を計算する演算子です。例えば、次のコマンドは、変数$aを変数$bで割った余りを変数$cに代入します。

poewrshell
$a = 10
$b = 3
$c = $a % $b

また、PowerShellでは、数値に対する単項演算子(たとえば、正負を反転する-演算子)や、複合代入演算子(たとえば、変数に値を加算して再代入する+=演算子)も利用可能です。これらの演算子は、数値を計算する際に便利です。

Lesson 6 Chapter 3
代入演算子

PowerShellにおける代入演算子は、変数に値を代入するための演算子であり、変数の値を更新する際に使用します。

以下は、PowerShellで使用できる代入演算子の一覧です。

代入演算子(=)

変数に値を代入するための演算子です。例えば、次のコマンドは、変数$aに値10を代入します。

poewrshell
$a = 10

複合代入演算子

変数に値を加算、減算、乗算、除算し、更新するための演算子です。例えば、次のコマンドは、変数$aに5を加算し、結果を再度変数$aに代入します。

poewrshell
$a += 5

他の複合代入演算子としては、-=演算子(減算して再代入する)、*=演算子(乗算して再代入する)、/=演算子(除算して再代入する)などがあります。

代入演算子は、変数を初期化する際や、ループ処理や関数内で変数を更新する際など、多くの場面で使用されます。また、代入演算子を使用することで、コードをより簡潔にすることができます。

Lesson 6 Chapter 4
比較演算子

PowerShellにおける比較演算子は、値の比較を行うための演算子であり、条件文の中で使用されます。以下は、PowerShellで使用できる比較演算子の一覧です。

等しい演算子(-eq)

左辺の値が右辺の値と等しい場合にTrueを返します。

poewrshell
$a -eq $b

等しくない演算子(-ne)

左辺の値が右辺の値と等しくない場合にTrueを返します。

poewrshell
$a -ne $b

より大きい演算子(-gt)

左辺の値が右辺の値よりも大きい場合にTrueを返します。

poewrshell
$a -gt $b

より小さい演算子(-lt)

左辺の値が右辺の値よりも小さい場合にTrueを返します。

poewrshell
$a -lt $b

以上演算子(-ge)

左辺の値が右辺の値以上の場合にTrueを返します。

poewrshell
$a -ge $b

以下演算子(-le)

左辺の値が右辺の値以下の場合にTrueを返します。

poewrshell
$a -le $b

比較演算子は、if文やwhile文などの条件分岐処理で使用されます。例えば、次のコードは、変数$aが変数$bよりも大きい場合にメッセージを表示します。

poewrshell
if($a -gt $b){
  Write-Host "a is greater than b"
}

また、比較演算子は、複数の条件を組み合わせて複雑な条件文を作成する場合にも使用されます。例えば、次のコードは、変数$aが変数$bよりも大きく、変数$cが変数$dと等しくない場合にメッセージを表示します。

poewrshell
if($a -gt $b -and $c -ne $d){
  Write-Host "a is greater than b and c is not equal to d"
}

マッチング演算子

PowerShellにおけるマッチング演算子は、文字列やパターンの一致を判定するための演算子です。マッチング演算子は、正規表現パターンを使用して、文字列の中に特定のパターンが含まれるかどうかを調べることができます。以下は、PowerShellで使用できるマッチング演算子の一覧です。

一致するかどうかを判定するマッチング演算子(-match)

左辺の文字列が右辺の正規表現パターンに一致する場合にTrueを返します。

poewrshell
$string -match "pattern"

一致しないかどうかを判定するマッチング演算子(-notmatch)

左辺の文字列が右辺の正規表現パターンに一致しない場合にTrueを返します。

poewrshell
$string -notmatch "pattern"

置換を行うマッチング演算子(-replace)

左辺の文字列の中で、右辺の正規表現パターンに一致する部分を、指定した置換文字列に置き換えます。

poewrshell
$string -replace "pattern", "replacement"

マッチング演算子は、if文やwhile文などの条件分岐処理で使用されます。

例えば、次のコードは、変数$stringが文字列"apple"を含む場合にメッセージを表示します。

poewrshell
if($string -match "apple"){
  Write-Host "The string contains the word apple."
}

また、マッチング演算子は、文字列の一部を置換する場合にも使用されます。例えば、次のコードは、変数$stringの中で、正規表現パターン"apple"に一致する部分を、文字列"orange"に置き換えます。

poewrshell
$newstring = $string -replace "apple", "orange"

配列演算子

PowerShellにおける配列演算子は、配列に対する操作を行うための演算子です。以下は、PowerShellで使用できる配列演算子の一覧です。

配列を連結する演算子(+)

2つの配列を連結して1つの配列にします。

poewrshell
$array1 = 1, 2, 3
$array2 = 4, 5, 6
$array3 = $array1 + $array2
# $array3 = 1, 2, 3, 4, 5, 6

配列に要素を追加する演算子(+=)

左辺の配列に右辺の要素を追加します。

poewrshell
$array = 1, 2, 3
$array += 4
# $array = 1, 2, 3, 4

配列の要素を削除する演算子(-)

左辺の配列から右辺の要素を削除します。

poewrshell
$array = 1, 2, 3, 4
$array - 3
# $array = 1, 2, 4

配列の要素を比較する演算子(-contains)

左辺の配列に右辺の要素が含まれる場合にTrueを返します。

poewrshell
$array = 1, 2, 3, 4
$array -contains 3
# True

配列の要素数をカウントする演算子(@())

コマンドレットや式の出力を配列に変換します。

poewrshell
$count = @(Get-ChildItem).Count

例えば、次のコードは、配列の要素を連結して1つの文字列にします。

poewrshell
$array = "apple", "banana", "orange"
$string = $array -join ", "
# $string = "apple, banana, orange"

また、配列の要素を列挙する場合には、foreach文を使用することもできます。

poewrshell
$array = "apple", "banana", "orange"
foreach($item in $array){
  Write-Host $item
}

Lesson 6 Chapter 5
論理演算子

PowerShellにおける論理演算子は、複数の条件を組み合わせるために使用されます。以下は、PowerShellで使用できる論理演算子の一覧です。

論理積(AND)演算子(-and)

左右の条件が共にTrueの場合にTrueを返します。

poewrshell
$x = $true
$y = $false
$result = $x -and $y
# $result = False

論理和(OR)演算子(-or)

左右の条件のうち、どちらかがTrueの場合にTrueを返します。

poewrshell
$x = $true
$y = $false
$result = $x -or $y
# $result = True

否定(NOT)演算子(-not)

条件を反転します。

poewrshell
$x = $true
$result = -not $x
# $result = False

比較演算子を組み合わせる場合

複数の比較演算子を組み合わせて条件を指定することもできます。

poewrshell
$x = 5
$result = ($x -gt 1) -and ($x -lt 10)
# $result = True

上記の例では、$xが1より大きくかつ10より小さい場合にTrueを返します。

また、論理演算子を使用する場合、条件式の順序が重要です。PowerShellでは、論理積演算子(-and)の方が優先度が高く、論理和演算子(-or)は論理積演算子よりも低い優先度となっています。詳細はLosson6 Chapter7で後述します。

Lesson 6 Chapter 6
ビット処理演算子

ビット処理演算子は、コンピュータの内部で数値データを扱うために使用される演算子です。コンピュータは、2進数で数値を表現するため、ビット(0または1の値)が使われます。 PowerShellにおけるビット処理演算子は、整数値の各ビットに対する論理演算を行うために使用されます。以下は、PowerShellで使用できるビット処理演算子の一覧です。

ビット単位の論理積(AND)演算子(-band)

対応するビットが両方とも1の場合、そのビットを1に設定します。

poewrshell
$x = 5 # 0b0101
$y = 3 # 0b0011
$result = $x -band $y
# $result = 1 # 0b0001

ビット単位の論理和(OR)演算子(-bor)

対応するビットがどちらかが1の場合、そのビットを1に設定します。

poewrshell
$x = 5 # 0b0101
$y = 3 # 0b0011
$result = $x -bor $y
# $result = 7 # 0b0111

ビット単位の否定(NOT)演算子(-bnot)

各ビットの反転した値を返します。

poewrshell
$x = 5 # 0b0101
$result = -bnot $x
# $result = -6 # 0b1010 (2の補数表現)

ビット単位の排他的論理和(XOR)演算子(-bxor)

対応するビットが異なる場合に1に設定します。

poewrshell
$x = 5 # 0b0101
$y = 3 # 0b0011
$result = $x -bxor $y
# $result = 6 # 0b0110

左シフト演算子(-shl)

整数のビット表現を、指定したビット数だけ左にシフトします。

poewrshell
$x = 5 # 0b0101
$result = $x -shl 2
# $result = 20 # 0b10100

右シフト演算子(-shr)

整数のビット表現を、指定したビット数だけ右にシフトします。

poewrshell
$x = 20 # 0b10100
$result = $x -shr 2
# $result = 5 # 0b0101

上記の例では、$xと$yのビット演算を実行し、結果を変数$resultに割り当てます。注意点として、ビット演算を行う際には、整数値を使用する必要があります。また、ビット演算を使用する場合、ビット演算対象の変数のデータ型が整数型であることに注意してください。 これらの演算子は、ビットマスク、符号拡張、データ圧縮、暗号化などのアプリケーションでよく使用されます。

Lesson 6 Chapter 7
その他の演算子

PowerShellには、算術演算子、代入演算子、比較演算子、マッチング演算子、配列演算子、論理演算子、ビット処理演算子以外にも演算子があります。

以下、それぞれの演算子の簡単な説明です。

演算子 説明
部分式演算子 式の一部を指定するための演算子で、$( ) で囲んで使います。 例えば、$(1 + 2) * 3といった使い方ができます。
配列部分式演算子 配列内の要素を指定するための演算子で、[ ] で囲んで使います。 例えば、$array[0]のような使い方ができます。
呼び出し演算子 関数を呼び出すための演算子で、関数名の後ろに ( ) をつけて使います。 例えば、Get-ChildItemという関数を呼び出す場合は、Get-ChildItem()と書きます。
キャスト演算子 値のデータ型を変換するための演算子で、[ ] 内に変換先のデータ型を指定して使います。 例えば、[int]$valueというような使い方ができます。
コンマ演算子 式を連結するための演算子で、左辺と右辺を , で区切って使います。 例えば、$a = 1, 2, 3といった使い方ができます。
ドットソース演算子 オブジェクトのプロパティやメソッドを参照するための演算子で、オブジェクトの後ろに . をつけて使います。 例えば、$obj.Propertyや$obj.Method()のような使い方ができます。
書式演算子 文字列の書式を指定するための演算子で、-f を使います。 例えば、"{0}さんは{1}歳です。" -f $name, $ageといった使い方ができます。
インデックス演算子 コレクションから要素を取得するための演算子で、[ ] 内にインデックスを指定して使います。 例えば、$list[0]のような使い方ができます。
パイプライン演算子 コマンドの出力を別のコマンドの入力につなげるための演算子で、| を使います。 例えば、Get-Process | Sort-Object -Property CPUといった使い方ができます。
プロパティ参照演算子 オブジェクトのプロパティを参照するための演算子で、. を使います。 例えば、$obj.Propertyといった使い方ができます。
レンジ演算子 指定した範囲の整数値のリストを生成します。

部分式演算子

部分式演算子は、式の一部分だけを取り出すための演算子です。具体的には、変数の配列やハッシュテーブルの要素を取り出す際に使用されます。

部分式演算子には、以下の2種類があります。

  • $(): 式をカッコで括って、その値を取得する演算子です。式の評価結果を変数に代入する場合や、文字列中に式の結果を埋め込む場合によく使われます。
  • $(,): 式をカンマで区切って、配列として評価する演算子です。複数の式の結果を配列にまとめて取得する場合によく使われます。

以下は、それぞれの演算子の例です。

powershell
# $()の例
$num1 = 1
$num2 = 2
$num3 = 3
$total = $(($num1 + $num2) * $num3)
Write-Output "Total: $total"

# $(,)の例
$values = $(1, 2, 3)
Write-Output $values[0]
Write-Output $values[1]
Write-Output $values[2]

実行結果は以下のようになります。

実行結果
Total: 9
1
2
3

配列部分式演算子

PowerShellの配列部分式演算子は、配列の特定の要素にアクセスするために使用されます。配列部分式演算子は、配列の要素の範囲を指定することができます。

配列部分式演算子の構文は以下の通りです。

powershell
array[startIndex..endIndex]

ここで、arrayは配列の名前、startIndexは開始インデックス、endIndexは終了インデックスを表します。startIndexとendIndexは、整数値または変数で指定できます。

例えば、次のような配列がある場合を考えます。

powershell
$fruits = "apple", "banana", "cherry", "date", "elderberry"

この配列の2番目から4番目までの要素を取得する場合、配列の1番目はインデックスでは[0]となるため、配列部分式演算子を使用して次のように書くことができます。

powershell
$fruits[1..3]

これにより、次の出力が得られます。

実行結果
banana
cherry
date

配列部分式演算子は、配列の一部分を取得するだけでなく、配列に値を割り当てることもできます。たとえば、次のように書くことができます。

powershell
$fruits[2..3] = "orange", "peach"

これにより、$fruits配列の3番目と4番目の要素が"orange"と"peach"に置き換えられます。

呼び出し演算子

PowerShellの「呼び出し演算子」は、関数やメソッドを呼び出すための演算子です。関数名やメソッド名を指定して、引数を渡して呼び出すことができます。

呼び出し演算子は、次のような構文で表されます。

powershell
<functionName> <argumentList>

ここで、<functionName>は呼び出す関数名やメソッド名を表します。<argumentList>は、呼び出す関数やメソッドに渡す引数のリストを表します。

例えば、以下のような関数を定義したとします。

powershell
function Add-Numbers($a, $b) {
    return $a + $b
}

この関数は2つの引数を受け取り、それらを足し合わせた結果を返します。この関数を呼び出すには、以下のようにします。

powershell
Add-Numbers 2 3

この場合、Add-Numbersが呼び出し演算子になり、2と3が引数として渡されます。この呼び出しの結果、5が返されます。

また、オブジェクトのメソッドを呼び出す場合も、同様の構文を使用します。例えば、Get-ChildItemコマンドレットで取得したファイルのパスを取り出すには、次のようにします。

powershell
(Get-ChildItem)[0].FullName

この場合、(Get-ChildItem)が呼び出し演算子になり、ファイルのリストが取得されます。その後、インデックス演算子とプロパティ参照演算子が使用されて、最初のファイルのパスが取り出されます。

キャスト演算子

キャスト演算子は、あるデータ型の値を別のデータ型に変換するための演算子です。キャスト演算子を使用することで、値を明示的に別のデータ型に変換することができます。

PowerShellには、以下のようなキャスト演算子があります。

キャスト演算子 説明
[int] 整数型にキャストするための演算子
[double] 倍精度浮動小数点数型にキャストするための演算子
[string] 文字列型にキャストするための演算子
[bool] 真偽値型にキャストするための演算子

たとえば、数値の 10 を文字列型にキャストする場合は、以下のように書きます。

powershell
PS C:\> $num = 10
PS C:\> $str = [string]$num
PS C:\> $str.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object

このように、[string]演算子を使用して $num 変数の値を文字列型にキャストし、$str 変数に代入しています。GetType() メソッドを使用することで、$str 変数の型を確認することができます。

キャスト演算子は、PowerShellでデータ型の変換を行う場合に頻繁に使用される演算子の1つです。

コンマ演算子

PowerShellの「コンマ演算子」とは、カンマ (,) を使用して2つ以上の式を区切り、複数の式を同時に評価する演算子です。カンマで区切った各式が左から順番に評価され、最後の式の結果が全体の評価結果となります。

以下は、コンマ演算子を使用した例です。

powershell
$a = 1,2,3    # 変数 $a に配列(1,2,3)を代入
$b = ($c = 4),5,6    # 変数 $c に 4 を代入した後、$bに配列(4,5,6)を代入

この例では、最初の行でコンマ演算子を使用して、変数 $a に配列 (1, 2, 3) を代入しています。2行目では、変数 $c に4を代入し、次にコンマ演算子を使用して、変数 $b に配列 (4, 5, 6) を代入しています。ただし、変数 $c に代入された4は、配列の評価には影響しません。

コンマ演算子は、複数の式を同時に実行する場合に便利です。ただし、コードの可読性を損ねる場合があるため、適切な使用を心がける必要があります。

ドットソース演算子

PowerShellには、「ドットソース演算子」と呼ばれる演算子があります。これは、ドット(.)を使用して、オブジェクトのプロパティやメソッドにアクセスするために使用されます。

例えば、次のように使用することができます。

powershell
$myObject = New-Object -TypeName PSObject -Property @{
    Name = "John Smith"
    Age = 30
    Occupation = "Engineer"
}

# ドットソース演算子を使用して、オブジェクトのプロパティにアクセスする
Write-Host $myObject.Name
Write-Host $myObject.Age
Write-Host $myObject.Occupation

この例では、New-Object cmdletを使用して、名前、年齢、職業を持つオブジェクトを作成しています。そして、ドットソース演算子を使用して、そのオブジェクトのプロパティにアクセスし、その値をコンソールに出力しています。

ドットソース演算子は、オブジェクトのメソッドにも使用することができます。例えば、次のように使用することができます。

powershell
# オブジェクトのメソッドを呼び出す
$myString = "Hello, World!"
$myString.ToUpper()

この例では、ToUpper()メソッドを使用して、$myString変数の文字列を大文字に変換しています。ドットソース演算子を使用して、オブジェクトのメソッドにアクセスし、それを呼び出しています。

ドットソース演算子は、PowerShellでよく使用される演算子の1つです。オブジェクトのプロパティやメソッドに簡単にアクセスできるため、PowerShellのスクリプトをより簡潔で読みやすくすることができます。

書式演算子

「書式演算子」とは、文字列内に特定の場所(プレースホルダー)を設けておき、そのプレースホルダーに変数の値を挿入する演算子です。この演算子を使うことで、簡単に出力の形式を指定することができます。

例えば、文字列の中に「{0}さんの年齢は{1}歳です」という形式を指定しておき、プレースホルダーの {0} に名前、{1} に年齢の変数を指定することで、出力の形式を指定することができます。これにより、同じような情報を繰り返し出力する場合にも、簡単に出力フォーマットを一元管理することができます。

書式演算子は、-fというフォーマット指定子で表されます。この演算子を使用する場合、フォーマット文字列の中に置き換えたい部分を {} で囲んで指定します。例えば、以下のように使用します。

powershell
$name = "John"
$age = 25
Write-Host "My name is {0} and I am {1} years old." -f $name, $age

上記のコードでは、書式演算子 -f を使用して、フォーマット文字列内の {0} と {1} の部分を、それぞれ $name と $age の値で置き換えています。

書式演算子は、色や幅、精度など、出力フォーマットをさまざまにカスタマイズするためのフォーマット指定子もサポートしています。さらに詳細はPowerShellのドキュメントを参照してください。

インデックス演算子

PowerShellにおいて、配列や文字列、ハッシュテーブル(キーと値のペアを保持するデータ構造の一種)の要素を取得するために使用される演算子が「インデックス演算子」です。

配列の場合、要素を添字で指定してアクセスできます。例えば、以下のように配列を作成して、インデックス演算子を使用して特定の要素にアクセスすることができます。

powershell
$fruits = "apple", "orange", "banana"
$fruits[0] # apple
$fruits[1] # orange
$fruits[2] # banana

文字列の場合も同様に、文字列の中の特定の文字を添字で指定してアクセスできます。

powershell
$str = "hello world"
$str[0] # h
$str[1] # e
$str[6] # w

ハッシュテーブルの場合、キーを添字で指定してそのキーに対応する値を取得することができます。

powershell
$person = @{
    name = "Alice"
    age = 25
}
$person["name"] # Alice
$person["age"] # 25

また、配列や文字列の一部を取り出す際には、インデックス演算子に加えて「範囲演算子」も使用することができます。

powershell
$fruits = "apple", "orange", "banana"
$fruits[0..1] # apple, orange
$fruits[1..2] # orange, banana

$str = "hello world"
$str[0..4] # hello
$str[6..10] # world

このように、インデックス演算子を使用することで、配列や文字列、ハッシュテーブルの要素にアクセスすることができます。

パイプライン演算子

PowerShellにおけるパイプライン演算子(|)は、前のコマンドからの出力を次のコマンドの入力として渡すために使用されます。つまり、一連のコマンドをパイプで接続することで、複雑な操作を実行することができます。

たとえば、Get-ChildItemコマンドで現在のフォルダ内のファイルを一覧表示し、その出力をSelect-Objectコマンドに渡して、選択したプロパティだけを表示することができます。

powershell
Get-ChildItem | Select-Object Name, Length

この例では、Get-ChildItemでファイルを一覧表示し、その出力をSelect-Objectに渡して、NameとLengthプロパティを表示しています。

パイプライン演算子は、データをフィルタリング、整形、集計するための便利なツールです。

プロパティ参照演算子

「プロパティ参照演算子」とは、オブジェクトのプロパティにアクセスするための演算子です。プロパティとは、オブジェクトが持つデータのことであり、例えばファイルの場合、ファイル名、作成日時、更新日時などがプロパティとして扱われます。

プロパティ参照演算子は、「.」(ドット)で表されます。オブジェクトの後ろにドットを付け、続けてプロパティ名を記述することで、そのプロパティにアクセスすることができます。

例えば、以下のようにファイルの情報を取得するPowerShellコマンドを考えてみましょう。

powershell
Get-ChildItem -Path C:\Users\Username\Documents\file.txt

このコマンドで返されるオブジェクトには、ファイルのプロパティが含まれます。例えば、Nameプロパティを参照するには、以下のようにします。

powershell
(Get-ChildItem -Path C:\Users\Username\Documents\file.txt).Name

このコマンドは、Get-ChildItemコマンドレットで取得したファイルオブジェクトのNameプロパティを参照しています。.演算子を使って、オブジェクトのプロパティにアクセスしていることに注意してください。

レンジ演算子

PowerShellの「レンジ演算子」は、指定した範囲の整数値の配列を作成するために使用される演算子です。この演算子には2つの形式があります。

1つ目は、2つの整数を「.」で区切った形式です。この形式では、最初の整数が開始値を表し、2番目の整数が終了値を表します。例えば、以下のように使用します。

powershell
PS > 1..5
1
2
3
4
5

2つ目の形式は、開始値、ステップ数、および終了値を指定する形式です。この形式では、最初の整数が開始値、2番目の整数がステップ数、3番目の整数が終了値を表します。例えば、以下のように使用します。

powershell
PS > 1..10..2
1
3
5
7
9

この例では、開始値は1、ステップ数は2、終了値は10です。したがって、この式は、1から10までの間にあるすべての偶数を含む配列を作成します。

スタティックメンバー演算子

スタティックメンバー演算子は、「::」という記号で表されます。この演算子は、クラスや構造体に属する特別なメンバーにアクセスするために使用されます。

スタティックメンバーは、クラスや構造体に属する特別なメンバーで、インスタンスを作成しなくても直接呼び出すことができます。例えば、MathクラスのPIフィールドは、Math::PIという形式でアクセスできます。 ※インスタンスとは、クラスや構造体から生成されたオブジェクトのことを指します。

以下は、スタティックメンバー演算子を使用した例です。

powershell
class MyClass {
  static [int] $count = 0
}

# スタティックメンバーにアクセス
MyClass::$count += 1

上記の例では、$countフィールドがMyClassクラスに属し、$countの値を1増やしています。このように、スタティックメンバー演算子を使用することで、クラスや構造体に属するスタティックメンバーにアクセスすることができます。

演算子の優先順位

PowerShellにおいて、演算子は実行する順番が決まっています。この順番は演算子の優先順位によって決まります。以下は一般的な演算子の優先順位の一覧です。

優先順位 演算子
1 単項プラス/マイナス
2 論理否定/ビット否定
3 乗算/除算/剰余
4 加算/減算
5 シフト演算子
6 ビット演算子
7 比較演算子
8 論理演算子
9 条件演算子
10 代入演算子
11 パイプライン演算子

例えば、以下の式では、乗算演算子が加算演算子よりも優先されて計算されます。

powershell
$a = 2 + 3 * 4  # $aは14になる

しかし、演算子の優先順位が同じ場合には、左から右に順に計算されます。

powershell
$a = 6 / 2 * 3  # $aは9になる

優先順位を変更するには、カッコを使って優先すべき部分を指定します。

powershell
$a = (2 + 3) * 4  # $aは20になる