ホームに戻る
出典 :
関連 :
目次 :
基本形
# 変数の初期化
$AnyParam_1 = 123
$AnyParam_2 = "abc"
# 変数の参照
Write-Host $AnyParam_1
Write-Host $AnyParam_2
実行結果
123
abc
変数の命名規則
- 先頭は必ず '$'
- 2文字目以降は(半角)英数字とアンダースコア ('_') のみ使用可能(その他の文字・記号は使用できない)
変数の型
PowerShellは他のスクリプト言語同様、静的な型付けを行わず、与えられた実データに応じて適切なデータ型を自動的に割り当てる。
ここで既存の変数に異なる型のデータを代入した場合、新たな値に応じてデータ型が再度割り当てられる(エラーとはならない)。
# $ttt に 1 (数値)を代入し、型を確認
# ⇒ Int32 (ValueType : 値型)
PS > $ttt = 1
PS > $ttt.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Int32 System.ValueType
# $ttt に "abc" (文字列)を代入し、型を確認
# ⇒ String (Object : オブジェクト型)
PS > $ttt = "abc"
PS > $ttt.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
文字列変数の自動展開
文字列を表現する際は引用符(シングルクォート ('') 、またはダブルクォート ("") )で囲む必要があるが、
文字列中に変数を含む場合、いずれを用いたかで挙動が異なる。
# 変数 $name に文字列を代入
$name = "山田"
# ダブルクォートで囲んだ場合 : $name が展開される
Write-Host "私は $name です"
# シングルクォートで囲んだ場合 : $name が展開されない
Write-Host '私は $name です'
実行結果
私は 山田 です
私は $name です
配列
初期化
配列は @(要素1, 要素2,...) の形式で指定する。
# 変数 $arr を配列として初期化
$arr = @(1, 2, 3, 4)
# ↑ ↑ ↑ ↑
# │ │ │ $arr[3] または $arr[-1]
# │ │ $arr[2]
# │ $arr[1]
# $arr[0]
参照
変数名[添字] の形式で指定する。
添字(インデクス)は 0 起算のため、$arr の先頭要素は $arr[0] 、続く要素は $arr[1] 、 $arr[2] ...となる。
また、添字に -1 を指定することで末尾要素にアクセスできる。
添字を省略した場合、すべての要素を参照する。
PS > $arr = @(1, 2, 3, 4)
PS > $arr[0] #< 先頭要素にアクセス
1
PS > $arr[1]
2
PS > $arr[-1] #< 末尾要素にアクセス
4
PS > $arr #< 全要素にアクセス
1
2
3
4
PS >
連想配列(ハッシュテーブル)
連想配列とは、値と、値を連想させる「キー」の対を保持する配列のこと。
無機質な「添字」と異なり、意味のある「キー」を用いることで、値を体系立てて整理することができる。
.NET、およびC++における同種の概念については、
[.NET]Dictionary(連想配列)
[C++]マップ(連想配列)
を参照のこと。
初期化
連想配列は @{要素1のキー=要素1の値; 要素2のキー=要素2の値;...} の形式で指定する。
# 変数 $map_height を連想配列として初期化
# 氏名と身長を対にして保持する
$map_height = @{"相原" = 168; "新井" = 170; "早矢仕" = 180}
参照
変数名[キー] または 変数名.キー の形式で指定する。
キーを省略した場合は通常の配列同様、すべての要素を参照する。
PS > $map_height = @{"相原" = 168; "新井" = 170; "早矢仕" = 180}
PS > $map_height["相原"] #< "相原" の身長
168
PS > $map_height."新井" #< "新井" の身長
170
PS > $map_height.早矢仕 #< . (ドット)を用いる場合、引用符は省略可能
180
PS > $map_height #< 全要素にアクセス
Name Value
---- -----
相原 168
新井 170
早矢仕 180
PS > $map_height.Keys #< Keys プロパティでキーの一覧を取得
相原
新井
早矢仕
PS > $map_height.Values #< Values プロパティで値の一覧を取得
168
170
180
PS >