2013-12-25~
[[PowerShell]]~
https://technet.microsoft.com/ja-jp/library/hh849697.aspx

*PowerShell 言語仕様 文法 [#u0143664]
#contents

**未定義変数の使用を禁止する [#s28efdd8]
PowerShellでは、未定義の変数を使うことができる。~
#sh(php){{

$value = 0;        # "value"に0をセット
Write-Host $vaule; # "vaule"の値を出力

}}

ただ、大概これはタイプミスを許しデバッグを困難にするので、以下のコマンドを実行することで未定義の変数を使用禁止にすることができる。~
#sh(php){{

Set-PSDebug -Strict;

}}

以降、変数は一度定義されたものしか使用することができなくなる。~

**変数 [#r2323178]
***定義 [#gd06efe4]
#sh(php){{

# $変数名 = 値
$value1 = "value";

}}
行末のセミコロンは入れなくてよい。~
1行に複数行の定義文を書く場合は必要。~
#sh(php){{

$value1 = 1; $value2 = 2;

}}

また、定義は基本的に1行に収める。~
複数行にまたがる場合は`を行末に入れ、改行をエスケープする。~
#sh(php){{

$value2 = 0 `
    + 100;

}}

***定義の削除 [#he89b75d]
TODO


**コメント [#f851b270]
#sh(php){{

# #から始まり、行末までコメント

$value = 0; # ここもコメント

<#
    複数行に及ぶ場合は、<# #>で囲うことでまとめてコメント化
#>

}}

**ヒアドキュメント [#w74c1924]
複数行におよぶ文字列の入力は、従来の$str += $substrでも可能だが、PowerShellでは@" "@もしくは@' '@で定義することができる。=
#sh(php){{

# 古来のやり方
$multilines0 = "1st line."
$multilines0 += "2nd line."

$multilines1 = @"
複数の改行を含む文字列の例。
ダブルクォートを使うと、中の変数が展開される。
"@

$multilines2 = @'
シングルクォートの場合は変数が展開されず、$マークがそのまま$で解釈される。
'@; 

}}

**関数 [#sa359cd8]
***定義 [#feb294db]
#sh(php){{

function Invoke-MyFunction($param1, $param2) {
  # any commands
}
}}

***呼び出し
***呼び出し [#f476c775]

**繰り返し処理 [#h453adb2]
***for [#pd5a5abd]
#sh(bash){{

$items = @(1, 2, 3);

for($i = 0; $i -lt $items.Length; ++$i)
{
    Write-Host $items[$i];
}

}}


***foreach [#j1a707d8]
#sh(bash){{

$items = @(1, 2, 3);

foreach($item in $items)
{
    Write-Host $item;
}

}}


***ForEach-Object [#x9f2a2d7]
#sh(bash){{

$items = @(1, 2, 3);

$items | ForEach-Object { Write-Host $_; }

}}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS