Articles

PowerShell関数

複数のスクリプトで同じコードを使用する必要がある場合は、PowerShell関数を使用します。

関数は、ユーザーによって名前が割り当てられたPowerShellステートメントのリストです。 関数を実行するとき、関数の名前を入力します。

コマンドレットと同様に、関数にもパラメーターを含めることができます。 関数パラメーターは、パイプラインまたはコマンドラインから読み取ることができます。PowerShellでは、関数は変数に割り当てたり、コマンドレットやその他の関数に渡すことができる値を返します。 Returnキーワードを使用することで、戻り値を指定できます。

構文

次のブロックは、関数の構文を説明しています。

上記の構文には、次の用語が含まれています。

  • 関数キーワード
  • あなたによって与えられた名前
  • スコープ(省略可能です)
  • 任意の数の名前付きパラメータ
  • 中かっこ{}で囲まれたPowerShellの一つ以上のコマンド。 PowerShellでは、関数が作成されたスコープに関数が存在します。
  • 関数がスクリプト内にある場合、そのスクリプト内のステートメントでのみ使用できます。
  • グローバルスコープで関数が指定されている場合、他の関数、スクリプト、およびコマンドラインで使用できます。

Simple function

次のブロックは、PowerShellで最も単純な関数を作成する方法を説明しています。

複数のステートメントを関数に追加するには、セミコロンを使用してステートメントを区切るか、各ステートメントを別々の行に入力する必要があります。

関数を使用するには、次のブロックに示すように関数の名前を入力します:

例:

PowerShellコンソールで次のコマンドを入力して、上記の例の出力を取得します。

出力:

Windows Operating SystemLinux operating System

高度な機能

高度な機能は、コマンドレットで実行される操作と同様の操作を実行できる機能です。 これらの関数は、ユーザーがコンパイルされたコマンドレットを記述せずに関数を記述する場合に使用されます。

コンパイルされたコマンドレットと高度な関数を使用することの主な違いは、コンパイルされたコマンドレットがのクラスであることです。NET frameworkは.NET framework言語で記述する必要があります。 また、高度な機能はPowerShellスクリプト言語で記述されています。

PowerShellコンソールで次のコマンドを入力して、上記の例の出力を取得します。

Output:

cmdlet Send-Greeting at command pipeline position 1Supply values for the following parameters:Name: AmanHi Aman!

関数の例

Example1:次の例は、現在の日付を返す単純な関数です。

次のコマンドを入力します上記の例の出力を取得するには、powershellコンソールで:

出力:

15 November 2019 14:41:17

例2:次の例は、一つのパラメータを受け入れ、そのパラメータの値を返す関数です。

上記の例のユーザーからの入力を取得するには、次のコマンドを入力します。

Output:

Enter a value: 10

関数の出力を表示する変数に関数からの戻り値を格納するには、次のコマンドを入力します。

次のコマンドは結果を示します。

Output: