はじめに
この連載では、Microsoftが提供している新しいシェル、Windows Power Shellの使い方を解説します。今回は、関数の作成基礎と引数、戻り値、Switchパラメータについて説明します。
これまでの記事
- Windows PowerShell 入門(1)-基本操作編
- Windows PowerShell 入門(2)-基本操作編 2
- Windows PowerShell 入門(3)-スクリプト編
- Windows PowerShell 入門(4)-変数と演算子編
- Windows PowerShell 入門(5)-制御構文編
対象読者
- Windows PowerShellでコマンドレット操作ができる方
- 何らかのプログラミング経験があればなお良い
必要環境
- Windows PowerShell
関数の基礎
PowerShellでの関数の基本構文は、
function 関数名 { 処理内容 }
です。このようにして作成した関数は、
関数名[Enter]
と入力して呼び出します。
早速ですが関数を1つ作成してみましょう。コンソールウィンドウで下記のように入力してください。
PS > function Hello { >> Write-Host "Hello PowerShell World!!" >> } >>
上記は関数名がHello
で、呼び出されたらWrite-Host
コマンドレットを使用して"Hello PowerShell World!!"と表示するものです。
では実際にHello
関数を使用してみましょう。コマンドラインでHelloと入力し、[Enter]キーを押下してください。
PS > Hello Hello PowerShell World!!
関数が実行され、"Hello PowerShell World!!"と表示されます。
引数
引数のある関数
引数のある関数の構文は、
function 関数名 (引数1, 引数2, ...引数n) { 処理内容 }
またはparam
キーワードを使用して、
function 関数名 { Param(引数1, 引数2, ...引数n) }
と書きます。この連載では前者の方で説明していきます。
引数のある関数の例として、足し算をする関数add
を作成してみましょう。
PS > function add ($x, $y) >> { >> Write-Host ($x + $y) >> } >>
この関数は引数$x
と$y
の2つを持っています。このように複数の引数を持つ関数を実行する場合は、
PS > add 3 5
のようにし、引数に渡す値はスペースで区切ります。
実はこの関数は、
PS > add Code Zine CodeZine
のように引数に文字列を渡すこともできます。これは引数に型が指定されていないためです。また加算演算子+
は文字列の場合は連結を行うため、上記は"CodeZine"と表示されます。
引数の型指定
先ほどの関数add
では、引数の型が指定されていませんでした。今度は、引数に型を指定してみましょう。
PS > function add2 ([int]$x, [int]$y) >> { >> Write-Host ($x + $y) >> } >>
引数に型を指定するには、上記[int]
のように[型]
を引数の前に記述します。ここでは、関数add2
の引数の型を[int]
としました。
この関数に文字列を渡したらどうなるでしょうか?
PS > add2 Code Zine add2 : 値 "Code" を型 "System.Int32" に変換できません。エラー: "入力文字列の形式が正しく ありません。" 発生場所 行:1 文字:5 + add2 <<<< Code Zine
引数に型指定([int]
)を行ったため、文字列は受け取ることができずエラーとなります。