作成 2010.01.05
更新 2012.11.17
PowerShell の演算子とキーワード
文字列の比較はデフォルトで大文字小文字を区別しない。
明示的に区別する場合は、比較演算子の前に 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

©2004-2017 UPKEN IPv4