コマンドラインで関数を定義したスクリプトを呼び出せばよい。ただし、実行時には実行演算子(&)で呼び出すのではなくドットソースをすること。ドットソースをすることで、スクリプト内で定義された変数と関数は、そのスクリプト終了後も持続する。スクリプトをドットソースするには、ドット演算子(.)を使ってスクリプト名をパラメーターとして指定すること。 以下のスクリプトは累乗と階乗を求める関数をそれぞれpower、factorialとして作成したものでdotsource.ps1と保存する。このスクリプトをドットソースするまでは計算できないが、ドットソースすることで計算するできるようになる。
function power($d, $n) { $r = 1 for ($i = 1; $i -le $n; $i++) { $r *= $d } return $r } function factorial($n) { $d = 1. for ($i = 1; $i -le $n; $i++) { $d *= $i } return $d }
実行結果
PS > power 2 5 power : 用語 'power' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。 (以下表示省略) PS > factorial 6 factorial : 用語 'factorial' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。 (以下表示省略) PS > & .\dotsource.ps1 PS > power 2 5 power : 用語 'power' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。 (以下表示省略) PS > factorial 6 factorial : 用語 'factorial' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。 (以下表示省略) PS > . .\dotsource.ps1 PS > power 2 5 32 PS > power 2 6 64 PS > power 2 7 128 PS > factorial 6 720 PS > factorial 7 5040 PS > factorial 8 40320