※本文中の "$" は半角で読み替えること。
引数
スクリプトへ引数指定することで値を渡すことが出来る
スクリプト側では $args[n] で引数を取得できる
指定した引数の数より大きい添字で $args[n] を指定してもエラーとはならない
例) ./sample1.ps1 test
スクリプト側では $args[n] で引数を取得できる
n は 0以降の数値で 0 であれば先頭の引数値(上記例では "test")が格納される
指定した引数の数より大きい添字で $args[n] を指定してもエラーとはならない
例) ./sample.ps1 test
↓
$args[1] としてもエラーにはならない
↓
$args[1] としてもエラーにはならない
引数の宣言
引数を宣言することにより、シェルの補完機能や型指定、必須指定などが可能となる。
引数を宣言するには、スクリプト先頭で Param属性 を設定する。
引数を宣言するには、スクリプト先頭で Param属性 を設定する。
Param($hikisu1, $hikisu2)引数に型を指定する場合
Param([String]$hikisu1, [int]$hikisu2)引数の既定値を指定する場合
Param($hikisu1="test", $hikisu2)引数を必須パラメータとする場合
Param([Parameter(mandatory=$true)$hikisu1])値の列挙
Param([ValidateSet("value1", "value")]$hikisu1, $hikisu2)
変数
変数を使うことができる。
変数名は $ で始まり $atai = "aaaa" のように指定する (文字列を格納するには "" で囲まないとエラーとなる)
変数値を表示するには、単に変数名だけを指定すれば良い
変数名は大文字・小文字は区別しない
New-Variable コマンドレッドを使用することもできる
変数名にスペースを含むことができる
変数の型を知るには "GetType()" を使用する
変数に型を指定することが可能。この場合は変数名先頭に [型] を指定する
変数名は $ で始まり $atai = "aaaa" のように指定する (文字列を格納するには "" で囲まないとエラーとなる)
変数値を表示するには、単に変数名だけを指定すれば良い
例) $atai
変数名は大文字・小文字は区別しない
New-Variable コマンドレッドを使用することもできる
例) New-Variable atai -value "test"
既に使用した変数名に対して New-Variable を実行するとエラーとなる
既に使用した変数名に対して New-Variable を実行するとエラーとなる
変数名にスペースを含むことができる
この場合、変数名を { } で囲む
例) ${this is a} = "pen"
例) ${this is a} = "pen"
変数の型を知るには "GetType()" を使用する
例) ${this is a}.GetType()
変数に型を指定することが可能。この場合は変数名先頭に [型] を指定する
例) [int]$suji = 123
変数のスコープ
スクリプトスコープ $script:変数名
プライベートスコープ $private:変数名
グローバルスコープ $global:変数名
プライベートスコープ $private:変数名
スクリプトスコープとプライベートスコープを使用しないと、変な動き(変ではないが)になる
これを避けるには funcA で 7 を設定した変数aをプライベート変数 $private:a とするか、funcB が参照している変数aをスクリプト変数 $script:a とする
$a = 3 function funcA { write-host "2) $a" $a = 7 write-host "3) $a" funcB } function funcB { write-host "4) $script:a" } write-host "1) $a" funcA write-host "5) $a"上記の場合 4) の表示では 3 が表示されそうだが funcB は funcA の配下なので 7 が表示される
これを避けるには funcA で 7 を設定した変数aをプライベート変数 $private:a とするか、funcB が参照している変数aをスクリプト変数 $script:a とする
グローバルスコープ $global:変数名
スクリプトファイルを超えてスコープを持つ変数
#4:演算子 へ続く
PowerShell学習
0 件のコメント:
コメントを投稿