サーチ…
前書き
演算子は、アクションを表す文字です。これは、コンパイラ/インタプリタに、特定の数学的、関係的または論理的演算を実行し、最終結果を生成するように指示する。 PowerShellは特定の方法で解釈し、算術演算子が主に数値に対して操作を実行するように分類しますが、文字列やその他のデータ型にも影響します。基本的な演算子に加えて、PowerShellには、時間やコードの作業を節約する多数の演算子があります(例:-like、-match、-replaceなど)。
算術演算子
1 + 2 # Addition
1 - 2 # Subtraction
-1 # Set negative value
1 * 2 # Multiplication
1 / 2 # Division
1 % 2 # Modulus
100 -shl 2 # Bitwise Shift-left
100 -shr 1 # Bitwise Shift-right
論理演算子
-and # Logical and
-or # Logical or
-xor # Logical exclusive or
-not # Logical not
! # Logical not
代入演算子
単純な算術:
$var = 1 # Assignment. Sets the value of a variable to the specified value
$var += 2 # Addition. Increases the value of a variable by the specified value
$var -= 1 # Subtraction. Decreases the value of a variable by the specified value
$var *= 2 # Multiplication. Multiplies the value of a variable by the specified value
$var /= 2 # Division. Divides the value of a variable by the specified value
$var %= 2 # Modulus. Divides the value of a variable by the specified value and then
# assigns the remainder (modulus) to the variable
増分と減分:
$var++ # Increases the value of a variable, assignable property, or array element by 1
$var-- # Decreases the value of a variable, assignable property, or array element by 1
比較演算子
PowerShellの比較演算子は、先頭にハイフン( -
)と名前( eq
はequal
、 gt
greater than
など)で構成されています。
オペレータの動作を変更するには、名前の前に特殊文字を付けることができます。
i # Case-Insensitive Explicit (-ieq)
c # Case-Sensitive Explicit (-ceq)
case-Insensitiveは、指定されていない場合( "a" -eq "A")と同じ( "a" -eq "A")です。
単純比較演算子:
2 -eq 2 # Equal to (==)
2 -ne 4 # Not equal to (!=)
5 -gt 2 # Greater-than (>)
5 -ge 5 # Greater-than or equal to (>=)
5 -lt 10 # Less-than (<)
5 -le 5 # Less-than or equal to (<=)
文字列比較演算子:
"MyString" -like "*String" # Match using the wildcard character (*)
"MyString" -notlike "Other*" # Does not match using the wildcard character (*)
"MyString" -match "$String^" # Matches a string using regular expressions
"MyString" -notmatch "$Other^" # Does not match a string using regular expressions
コレクション比較演算子:
"abc", "def" -contains "def" # Returns true when the value (right) is present
# in the array (left)
"abc", "def" -notcontains "123" # Returns true when the value (right) is not present
# in the array (left)
"def" -in "abc", "def" # Returns true when the value (left) is present
# in the array (right)
"123" -notin "abc", "def" # Returns true when the value (left) is not present
# in the array (right)
リダイレクション演算子
成功した出力ストリーム:
cmdlet > file # Send success output to file, overwriting existing content
cmdlet >> file # Send success output to file, appending to existing content
cmdlet 1>&2 # Send success and error output to error stream
エラー出力ストリーム:
cmdlet 2> file # Send error output to file, overwriting existing content
cmdlet 2>> file # Send error output to file, appending to existing content
cmdlet 2>&1 # Send success and error output to success output stream
警告出力ストリーム:(PowerShell 3.0以降)
cmdlet 3> file # Send warning output to file, overwriting existing content
cmdlet 3>> file # Send warning output to file, appending to existing content
cmdlet 3>&1 # Send success and warning output to success output stream
Verbose出力ストリーム:(PowerShell 3.0以降)
cmdlet 4> file # Send verbose output to file, overwriting existing content
cmdlet 4>> file # Send verbose output to file, appending to existing content
cmdlet 4>&1 # Send success and verbose output to success output stream
デバッグ出力ストリーム:(PowerShell 3.0以降)
cmdlet 5> file # Send debug output to file, overwriting existing content
cmdlet 5>> file # Send debug output to file, appending to existing content
cmdlet 5>&1 # Send success and debug output to success output stream
情報出力ストリーム:(PowerShell 5.0以降)
cmdlet 6> file # Send information output to file, overwriting existing content
cmdlet 6>> file # Send information output to file, appending to existing content
cmdlet 6>&1 # Send success and information output to success output stream
すべての出力ストリーム:
cmdlet *> file # Send all output streams to file, overwriting existing content
cmdlet *>> file # Send all output streams to file, appending to existing content
cmdlet *>&1 # Send all output streams to success output stream
パイプ演算子( |
)との違い
リダイレクション演算子は、ストリームをファイルまたはストリームからストリームにリダイレクトするだけです。パイプ演算子は、オブジェクトをパイプラインでコマンドレットまたは出力にポンピングします。パイプラインがどのように機能するかは、リダイレクトがどのように機能し、どのように読み取れるかとは一般に異なります。PowerShellパイプラインの使用
オペランドタイプのミックス:左オペランドのタイプによってビヘイビアが決まります。
追加の場合
"4" + 2 # Gives "42"
4 + "2" # Gives 6
1,2,3 + "Hello" # Gives 1,2,3,"Hello"
"Hello" + 1,2,3 # Gives "Hello1 2 3"
乗算の場合
"3" * 2 # Gives "33"
2 * "3" # Gives 6
1,2,3 * 2 # Gives 1,2,3,1,2,3
2 * 1,2,3 # Gives an error op_Multiply is missing
この影響は、比較演算子に隠された結果をもたらす可能性があります。
$a = Read-Host "Enter a number"
Enter a number : 33
$a -gt 5
False
文字列操作演算子
置換演算子:
-replace
演算子は、正規表現を使用して入力値のパターンを置き換えます。この演算子は、2つの引数(コンマで区切られた)を使用します。正規表現パターンとその置換値(省略可能でデフォルトは空の文字列)です。
"The rain in Seattle" -replace 'rain','hail' #Returns: The hail in Seattle
"[email protected]" -replace '^[\w]+@(.+)', '$1' #Returns: contoso.com
分割演算子と結合演算子:
-split
演算子は、文字列をサブ文字列の配列に分割します。
"A B C" -split " " #Returns an array string collection object containing A,B and C.
-join
演算子は、文字列の配列を単一の文字列に結合します。
"E","F","G" -join ":" #Returns a single string: E:F:G