基本構文・コマンド

基本的な構文やコマンドなど.

条件分岐

波括弧の位置については C# のコード規約を真似る.

# else 節無し
if (条件)
{
  # True case
}

# "True case" が 1 文の場合は 1 行で書いても良い
# ";" でつなげて長くしちゃうのはダメ
if (条件) { <# True case #> }

# 条件分岐
if (条件)
{
  # True case
}
else
{
  # False case
}

# 複数条件での分岐
if (条件1)
{
  # case 1
}
elseif (条件2)
{
  # case 2
}
else
{
  # default case
}

switch もある

# シンプルな switch
switch ()
{
  "a" { <# case a #> }
  "b" { <# case b #> }
  default { <# default case #> }
}

# 様々なオプションがある → -regex, -wildcard, -exact, -casesensitive
switch -wildcard ()
{
  "a*" { <# a で始まる場合 #> }
  "*b" { <# b で終わる場合 #> }
}

ref. http://codezine.jp/article/detail/2388?p=2

ref. https://technet.microsoft.com/en-us/library/ff730937.aspx

繰り返し

# インデックスアクセスしない
$array = @(1, 2, 3)
foreach ($elem in $array)
{
  Echo $elem
}

# C の for と同じ形式
for ($i = 0; $i -lt 3; $i++) {
  Echo $i
}

break, continue も使える.

部分式演算子 (subexpression operator)

ref. http://ufcpp.net/study/powershell/string.html#expression

ref. https://technet.microsoft.com/en-us/library/hh847732.aspx

$(式) と書くと式を評価してくれる. たいていの必要な場所では (式) で十分だが, 文字列中に埋め込めむ場合などには必要.

PS> $a = 123
PS> Echo "a: $($a + 3)"
a: 126
PS> Echo "a: ($a + 3)"
a: (123 + 3)

別ファイルの関数読み込み

bash のようなドット “.” で読み込める.

ref. https://technet.microsoft.com/ja-jp/scriptcenter/powershell_owner05.aspx#ECAA