HOWTO · PowerShell

PowerShell の異なるパラメータ

この記事では、パラメータ関数とは何か、さまざまな種類のパラメータ、そしてそれらのサンプル用途について説明します。

この記事では、パラメータ関数とは何か、パラメータで定義できるさまざまな種類の変数、さまざまな種類のパラメータ、およびそれらのサンプル使用法について学びます。

PowerShell のパラメータ

私たちのような管理者は、パラメータ param() 関数を使ってスクリプトや関数のためにパラメータを作成できます。パラメータスクリプトブロックは、変数によって示される 1つ以上のパラメータを含みます。

例のコード:

param ($myVariable)

ただし、宣言されたパラメータが必要な入力タイプのみを受け入れるようにするためには、ベストプラクティスとして、変数の前にデータ型を角括弧 [] で囲んでパラメータにデータ型を割り当てることが推奨されます。

例のコード:

param ([String]$myVariable)

名前付きパラメータ

スクリプトでパラメータを使用する方法の 1つは、名前付きパラメータを介することです。名前付きパラメータを介して関数またはスクリプトを呼び出すとき、変数名をパラメータのフルネームとして使用します。

例のコード:

param ([String]$name)

その後、.ps1 ファイルを実行するときに名前付きパラメータを使用して引数を渡すことができます。

例のコード:

powershell.exe .\sample.ps1 -name "John"

パラメータのデフォルト値

スクリプト内で事前にパラメータにデフォルト値を与えることによって、パラメータに値を割り当てることができます。その後、値をコンソールに渡さずにスクリプトを実行すると、スクリプト内に事前に定義された変数のデフォルト値が取られます。

例のコード:

param ([String]$name = "John")

スイッチパラメータ

使用できる別のパラメータタイプは、[switch] データ型によって定義されるスイッチパラメータです。スイッチパラメータは、true または false を示すためにブール値に使用されます。

例のコード:

param ([switch]$isEnabled)

必須パラメータ

通常、スクリプトを実行する際に使用しなければならない 1つ以上の必須パラメータがあります。したがって、これらのパラメータに値が割り当てられていない場合、スクリプトは失敗する可能性があります。

パラメータデータ型ブロック [Parameter()] の中に Mandatory データ型を挿入することによって、パラメータを必須にすることができます。

例のコード:

param (
    [Parameter(Mandatory)]
    [String] $servername
)

値なしで放置すると、PowerShell はスクリプトを実行させず、実行時に値を要求します。[Parameter(Mandatory)] ブロックがないパラメータはオプションパラメータと見なされることに注意する価値があります。

パイプラインパラメータ

ほとんどの PowerShell コマンドレットは、パイプ(|)記号を使用してデータを渡すことを許可しています。私たちは、パラメータを扱うときにこの PowerShell の機能を活用できます。

この方法を使用することで、連鎖的な PowerShell ファイルを実行する多くの機会が開かれます。

ファイル - pipeline.ps1

param([parameter(ValueFromPipeline)]$pipedVar)

Write-Output $pipedVar

例のコード:

"This string is from the pipeline." | .\pipeline.ps1

出力:

This string is from the pipeline.