SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windows PowerShell 入門

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

関数の作成方法と引数

戻り値

 戻り値を設定するにはreturnキーワードを使用します。

 下記は、引数で受け取った2つの値を足し算してreturnで返します。

PS > function Add3 ([int]$x, [int]$y)
>> {
>> return $x + $y
>> }
>>

 returnで返される値は、下記のようにして変数に代入することができます。

PS > $ret = Add3 3 4

 この場合は$retに3 + 4の結果が代入されます。

引数の位置指定

 関数呼び出し時に引数名を指定すると、引数の順番を変更することができます。

 下記はBMIを計算する関数です。

PS > function BMI($weight, $height) {
>>    return $weight / [math]::pow($height,2)
>> }
>>

 関数の呼び出しを、

PS> BMI 65 1.75

 とした場合は、体重が65kg、身長が1.75mのBMIを求めることになり、結果として21.2244897959184という値が返されます。

 これを

PS > BMI -height 1.75 -weight 65

 として実行しても同じ結果が返されます。これは、関数呼び出し時に、引数heightには1.75、weightには65を渡すことを明示的に指定しているからです。

 このようにPowerShellでは、どの引数に何の値を渡すかを指定することで、引数の順番を変更することが可能です。

BMI
 BMI(ボディマス指数)は、体重と身長の関係から人の肥満度を表す指数です。
 BMIは 体重(kg)÷(身長(m)*身長(m)) で求めることができます。
 ちなみにBMI 25以上が肥満、22が標準、18以下がやせ です

switchパラメータ

 switchパラメータとは、その名の通りスイッチのような役割をする引数です。

PS > function Say-Hello ([switch]$help)
>> {
>>   if ( $help )
>>   {
>>      Write-Host "これはSay-Hello関数の説明です"
>>   }
>>   else
>>   {
>>      Write-Host "Hello!!"
>>   }
>> }

 この関数を、

PS > Say-Hello -help

 として呼び出すと、「これはSay-Hello関数の説明です」と表示されます。これは、関数Say-Helloにスイッチ-helpを指定すると、$helpにTrueの値がセットされるためです。

 このようにswitchパラメータは、引数に値を渡さずに、パラメータの指定によって処理内容を分岐させたいときに有効です。

まとめ

 今回は、次の内容について解説しました。

  • 関数の基礎
  • 引数の使い方
  • 戻り値
  • switchパラメータ

 今回の説明ではコンソールウィンドウで関数を作成しました。次回は関数をファイルとして作成し、利用する方法について解説したいと思います。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Windows PowerShell 入門連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/2491 2008/05/29 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー