Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Windows PowerShell 入門(6)-関数編1

関数の作成方法と引数

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/05/29 14:00

この連載では、Microsoftが提供している新しいシェル、Windows Power Shellの使い方を解説します。今回は、関数の作成基礎と引数、戻り値、Switchパラメータについて説明します。

目次

はじめに

 この連載では、Microsoftが提供している新しいシェル、Windows Power Shellの使い方を解説します。今回は、関数の作成基礎と引数、戻り値、Switchパラメータについて説明します。

これまでの記事

対象読者

  • 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])を行ったため、文字列は受け取ることができずエラーとなります。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • HIRO(ヒロ)

    HIRO's.NETのHIROです。 とある半導体工場のSEです。 VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。 最近はBlog でPowerShellについて書いています。 2008/07/07にPowerShell from Japan!!という...

バックナンバー

連載:Windows PowerShell 入門

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5