※本文中の "$" は半角で読み替えること。
関数
function func { } function func( $arg1, $arg2 ) { } function func( [int]$arg1, [string]$arg2 ) { } function func( $arg1 = "test" ) { } function func( $arg1 = $(Get-Date) ) { }引数を指定しない場合は暗黙の引数となり $args で引数を取得可能
function func { foreach ( $val in $args ) { } }
参照渡し
引数の参照渡しも使える
function func ( [ref]$arg1 ) { }
名前付き引数
function func ( $arg1, $arg2 ) { } func -arg2 "X" -arg1 "Y"
switchパラメータ
function func( [switch]$help ) { if ( $help) { ・・・ } } func -help
関数を別ファイルにする
関数を別のスクリプトファイルにする場合、関数名の先頭に global修飾子 を付ける
function global:func { }後はスクリプトファイルを ./script.ps1 のように実行すれば関数が使えるようになる
プロファイル
PowerShell起動時に1度だけ読み込まれる特別なスクリプト
プロファイルの場所は $Profile 自動変数で確認できる
プロファイルの場所は $Profile 自動変数で確認できる
パイプライン引数
パイプラインで取得した値は $input 自動変数に格納される
またパイプラインを処理する際、最初に実行、値毎に実行、最後に実行 を処理することが可能
これらを行うには、
・begin { }
・process { }
・end { }
の各ブロックに処理を記述する
processでは、パイプラインで受け取った値は $_ で取得する ($inputではない)
またパイプラインを処理する際、最初に実行、値毎に実行、最後に実行 を処理することが可能
これらを行うには、
・begin { }
・process { }
・end { }
の各ブロックに処理を記述する
processでは、パイプラインで受け取った値は $_ で取得する ($inputではない)
フィルター
function の代わりに "filter" と書けばフィルターが作れる
パイプラインで取得した値は $_ で取得する
パイプラインで取得した値は $_ で取得する
スクリプトブロック
スクリプトブロックを変数に代入可能
$s = { $a * 3 }スクリプトブロックを実行するには &演算子 を付ける
& $s
関数を呼び出すには?
(2020.09.10 追記)
関数を呼び出す際、引数のカッコは不要。
例えば "function test()" を呼び出す場合は "test" だけを書く。
引数がある場合 "function test($a, $b)" は "test 1 2" のように書く。
さらに戻り値がある場合も同様で "$a = test 1 2" のように書く。
例えば "function test()" を呼び出す場合は "test" だけを書く。
引数がある場合 "function test($a, $b)" は "test 1 2" のように書く。
さらに戻り値がある場合も同様で "$a = test 1 2" のように書く。
#7:エラー処理 へ続く
PowerShell学習
0 件のコメント:
コメントを投稿