作成 2010.01.05
更新 2012.11.17
更新 2012.11.17
PowerShell の演算子とキーワード
文字列の比較はデフォルトで大文字小文字を区別しない。
明示的に区別する場合は、比較演算子の前に c をつける(例: -ceq)
明示的に区別しない場合は、比較演算子の前に i をつける(例: -ieq)
明示的に区別する場合は、比較演算子の前に c をつける(例: -ceq)
明示的に区別しない場合は、比較演算子の前に i をつける(例: -ieq)
演算子とキーワード | 意味 | 例 |
# | コメント行 | command # 以降はコメントです |
<# ~ #> |
コメントブロック PowerShell V2 以降で利用可能 |
<# abc def #> |
+ | 加算、文字列連結、または配列に追加する |
$val = $a + $b $val += $n #再帰代入も可能 |
− | 減算 |
$val = $a - $b $val -= $n #再帰代入も可能 |
* | 積算 |
$val = $a * $b $val *= $n #再帰代入も可能 |
/ | 除算。割り切れない場合は Double 型 |
$val = $a / $b $val /= $n #再帰代入も可能 |
% | 剰余。引数が Double 型の場合は返り値も Double 型になる |
$val = $a % $b $val %= $n #再帰代入も可能 |
-eq | 等価 | $a -eq $b |
-ne | 等価でない | $a -ne $b |
-gt | > | $a -gt $b |
-lt | < | $a -lt $b |
-ge | >= | $a -ge $b |
-le | <= | $a -le $b |
-not | 論理否定 | -not $a |
-and | 論理積 | $a -and $b |
-or | 論理和 | $a -or $b |
-xor | 排他的論理和 | $a -xor $b |
-bnot | ビット反転 | -bnot $a |
-band | ビット論理積 | $a -band $b |
-bor | ビット論理和 | $a -bor $b |
-bxor | ビット排他的論理和 | $a -bxor $b |
-is | オブジェクト型の評価。型が正しければTrue |
$a = 1 $a -is [Int32] |
-isnot | オブジェクト型の評価。型が違えばTrue |
$a = 1 $a -isnot [String] |
-as | 型のキャスト。キャストできない場合は Null |
$a = 1 $a -as [String] |
[Int] |
Int 型へキャスト。他も同様 Double 型から Int 型や Long 型へキャストすると、四捨五入される。 キャストできないとエラー |
[Int] $a |
++ | インクリメント | $a++ |
−− | デクリメント | $a-- |
m..n | m,m+1,m+2,...,n までの数字の配列 |
1..100 0..$a |
nkB | n キロバイト | 1kB # 1024 |
nMB | n メガバイト | 1MB # 1048576 |
nGB | n ギガバイト | 1GB # 1073741824 |
nL | n を Long 型で定義 | 1L |
` | 次の行と連続 |
statement ` statement |
object.PSBase | オブジェクト本来が持っているメソッドやプロパティに直接アクセス | $a.PSBase | Get-Member |
$$ | 直前のコマンドの最後のトークン |
$a = 1 $$ # 1 が表示される |
$^ | 直前のコマンドの最初のトークン |
$a = 1 $^ # a が表示される Get-Help Get-Command $^ # Get-Help が表示される |
$? | 直前の処理が成功したら True |
$a = 1 $? # True が表示される |
$null | Null 値 | $a = $null |
$true | 論理真 | $a -eq $true |
$false | 論理偽 | $a -eq $false |
$args |
引数の配列 スクリプトの引数としても使用できる。 |
$a = {Write-Host $args[0] $args[1]} &$a 1 2 3 |
$DebugPreference |
Write-Debug の挙動を指定する "Continue" Write-Debug に指定されたメッセージを表示し、処理を継続する "SilentlyContinue" Write-Debug に指定されたメッセージを表示せず、処理を継続する "Stop" Write-Debug に指定されたメッセージを表示し、処理を中止する。 "Inquire" Write-Debugに指定されたメッセージを表示後、継続するか問い合わせる |
# 現在の状態を表示 $DebugPreference # 文字列として明示的に指定する $DebugPreference = "Stop" |
$env:environment | 環境変数 %environment% を取得する |
# %PATH% を取得する $env:path # %PATH% に追加する $env:path += ";." |
$error |
今までにあったエラーを配列で格納している。 最新のエラーは $error[0] に格納される。 |
$error[0] |
$ErrorActionPreference |
エラーが発生した際の挙動を指定する。 Write-Error の挙動と同一 "Continue" エラーが発生したら表示し、処理を継続する。既定 "SilentlyContinue" エラーが発生しても何も表示せず、処理を継続する。 "Stop" エラーが発生したら表示し、処理を停止する。 "Inquire" エラーが発生したら表示後、継続するか問い合わせる |
# 現在の状態を表示 $ErrorActionPreference # 文字列として明示的に指定する $ErrorActionPreference = "Stop" |
$home | ユーザー プロファイルのパス。環境変数 %USERPROFILE% と同一 | $home |
$host | 実行環境の情報を取得する。 |
# PowerShell のバージョンを取得する $host.Version |
$input |
パイプから受け取ったデータ スクリプトでパイプを受け取る際にも使用できる。 |
Function Get-PipeData { foreach ( $a in $input ){ Write-Host $a } } 1..3 | Get-PipeData |
$LastExitCode | 外部コマンドの結果コードを取得する |
nslookup www.upken.jp $LastExitCode # 成功すると 0 が取得できる |
$profile |
PowerShellを起動したときにロードされる なお、スクリプトの実行許可を事前に与える必要がある。 PowerShell で PS1 スクリプトを実行出来るようにする |
$profile |
-f |
フォーマット。次のステートメントは等価 "{0:000}" -f $a [String]::Format("{0:000}",$a) 書式は System.String.Format メソッド を参照 |
"{0:000}" -f $a |
0xn | 16進数のn | 0x10 # 16 |
タグ: PowerShell