共通の処理

どこにも分類しづらい操作

ヘルプ

Get-Help cmdlet か -? オプションで見れる. コマンドのヘルプ以外にも単語を渡して検索のようなこともできる.

PS> Get-Help Get-Help

名前
    Get-Help
...

PS> Get-Help operator

Name                              Category  Synopsis
----                              --------  --------
about_Arithmetic_Operators        HelpFile  Windows PowerShell で算術演算を実行する演算子について説明します。
about_Assignment_Operators        HelpFile  代入演算子を使用して、変数に値を代入する方法について説明します。
about_Comparison_Operators        HelpFile  Windows PowerShell で値を比較する演算子について説明します。
about_logical_operators           HelpFile  Windows PowerShell でステートメントとステートメントを結び付ける演算子に...
about_operators                   HelpFile  Windows PowerShell でサポートされている演算子について説明します。
about_type_operators              HelpFile  Microsoft .NET Framework の型が使用される演算子について説明します。

# ``-?`` でも出る
PS> Get-Help -?

スクリプトのコマンドライン引数

$Args 変数に格納される.

引数解析

Param 文という文があり, PowerShell 自身にコマンドライン引数や関数の引数解析する機能がある.

Param 文の中には値を設定する変数を並べる. 各変数の前にはメタ情報が付加でき, 角括弧 [] の中にその変数の性質を記述する. メタ情報は複数付けられる.

# Param 文はファイルや関数本体の先頭でなければならない

# 前の変数から順に埋まる
# 引数: 1 b
# → $paramA = [int]1, $paramB = [string]"b"
Param
(
  $paramA,
  $paramB
)

# 変数の型が指定できる
# 引数: 1 b
# → $paramA = "1", $paramB = "b"
Param
(
  [string]$paramA,
  [string]$paramB
)

# 型が違うとエラーが出る
# 引数: 1 b
# => エラー
Param
(
  [string]$paramA,
  [int]$paramB
)

# 引数を渡さないと適当な初期値が入る
# 引数: 1
# → $paramA = "1", $paramB = ""
Param
(
  [string]$paramA,
  [string]$paramB
)

# 引数: 1
# → $paramA = "1", $paramB = 0
Param
(
  [string]$paramA,
  [int]$paramB
)



#
# 引数: -a a b
# →
Param
(
  [string]$paramA,
  [string]$paramB
)

ref. MS の記事 https://technet.microsoft.com/en-us/magazine/jj554301.aspx

ref. 細かい機能が載っている https://technet.microsoft.com/en-us/library/hh847743.aspx

スクリプトの終了

exit キーワード

exit

# リターンコードも設定できる
# 0: 正常終了, 1: 異常終了
exit 1

# $LASTEXITCODE に最後に発生したリターンコードが入っている
Echo $LASTEXITCODE

ref. https://devcentral.f5.com/articles/powershell-abcs-k-is-for-keywords

ref. http://www.manageengine.com/products/desktop-central/returning-error-code-on-scripts-how-to.html

TODO:$LASTEXITCODE$? の違いについて書く

型の取得

GetType メソッド

$var = "AAA"
$var.GetType()