関数を作成する

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

#TOC(caption="目次")

書式

関数の書式は以下です。

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!"	
}

実行結果

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

コード例2

function MyFunction{
	Write-Host "Hello!"	
}

MyFunction

実行結果

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

補足

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

MyFunction

function MyFunction{
	Write-Host "Hello!"	
}

コードを実行すると

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

といったエラーが発生します。

関数を作成する:画像3

コード例3

引数を伴う場合のコードです。

function MyCalc($a, $b, $c){
	$d=$a + $b + $c
	Write-Host $d 
}

MyCalc 12 6 3

実行結果

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

関数を作成する:画像4


コード例4

戻り値を持つ関数と、関数からの戻り値を変数に格納するコードです。

function GetName{
  Write-Output "ぺんぎん"
}

$name = GetName

実行結果

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

コード例5

戻り値を持つ関数と、関数からの戻り値を変数に格納し、末尾に"様"を追加して画面に表示するコードです。

function GetName{
  Write-Output "ぺんぎん"
}

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

実行結果

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

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