関数を作成する - PowerShell

PowerShellでの関数の記述方法を紹介します。

書式

関数の書式は以下です。
function 関数名{
  //関数の実装
}
引数をとる関数の場合は以下となります。
 function 関数名(引数1,引数2,引数3, ... 引数n){
   (関数の実装)
 }

呼び出し側の書式

また、関数を呼び出す場合は
関数名
と関数名のみを記述します。引数を伴う場合は
関数名 引数1 引数2 引数3 ... 引数n
と、引数はスペース区切りで与えます。

戻り値

関数からの戻り値は Write-Output で指定します。
 function 関数名(引数1,引数2,引数3, ... 引数n){
   (関数の実装)

   Write-Output (戻り値)
 }

コード例1

function MyFunction{
  Write-Host "Hello!"	
}

実行結果

上記のコードを実行します。
関数は実装されていますが、関数の呼び出し元がないため、画面には何も表示されません。

コード例2

function MyFunction{
	Write-Host "Hello!"	
}

MyFunction

実行結果

上記のコードを実行します。関数が呼び出され、"Hello!"の文字列が画面に表示されます。

補足

関数呼び出し部分が関数の実装より手前にる場合はエラーが発生します。
MyFunction

function MyFunction{
	Write-Host "Hello!"	
}
コードを実行すると
(関数名) : 用語 '(関数名)' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 (スクリプトファイルのパス名) 文字:
+ (関数名)
+ ~~~~~~~~~~
  + CategoryInfo : ObjectNotFound: ((関数名):String) [], CommandNotFoundException
  + FullyQualifiedErrorId : CommandNotFoundException
といったエラーが発生します。

コード例3

引数を伴う場合のコードです。
function MyCalc($a, $b, $c){
	$d=$a + $b + $c
	Write-Host $d 
}

MyCalc 12 6 3

実行結果

上記のコードを実行します。関数に引数を与えて呼び出しができており、引数の合計値である"21"が画面に表示されることが確認できます。


コード例4

戻り値を持つ関数と、関数からの戻り値を変数に格納するコードです。
function GetName{
  Write-Output "ぺんぎん"
}

$name = GetName

実行結果

上記のコードを実行します。関数からの戻り値を変数に格納するだけのコードのため、何も出力されません。

コード例5

戻り値を持つ関数と、関数からの戻り値を変数に格納し、末尾に"様"を追加して画面に表示するコードです。
function GetName{
  Write-Output "ぺんぎん"
}

$name = GetName
Write-Output ($name+"様")

実行結果

上記のコードを実行します。関数からの戻り値の末尾に"様"を追加して画面に表示します。

このページのキーワード
  • PowerShell 関数
  • PowerShell 関数 定義
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
掲載日: 2015-12-11
iPentec all rights reserverd.