2011-08-23 8 views

答えて

27

あなたは、このような各パラメータ上記の属性で指定:

function Do-Something{ 
    [CmdletBinding()] 
    param(
     [Parameter(Position=0,mandatory=$true)] 
     [string] $aMandatoryParam, 
     [Parameter(Position=1,mandatory=$true)] 
     [string] $anotherMandatoryParam) 

    process{ 
     ... 
    } 
} 
9

を必須パラメータは、パラメータの説明に「真= $必須」を追加作成するには。パラメータをオプションにするには、 "Mandatory"ステートメントをそのままにしておきます。

このコードは、スクリプトや関数のパラメータの両方のために働く:

[CmdletBinding()] 
param(
    [Parameter(Mandatory=$true)] 
    [String]$aMandatoryParameter, 

    [String]$nonMandatoryParameter, 

    [Parameter(Mandatory=$true)] 
    [String]$anotherMandatoryParameter 

) 

は「PARAM」の文は、スクリプトまたは関数のいずれかで(コマンドと空白行を除く)最初の1であることを確認してください。

あなたはパラメータを確認するためには、「get-help」コマンドレットを使用することができ、正しく定義されています

PS C:\> get-help Script.ps1 -full 
[...] 
PARAMETERS 
    -aMandatoryParameter <String> 

     Required?     true 
     Position?     1 
     Default value 
     Accept pipeline input?  false 
     Accept wildcard characters? 

    -NonMandatoryParameter <String> 

     Required?     false 
     Position?     2 
     Default value 
     Accept pipeline input?  false 
     Accept wildcard characters? 

    -anotherMandatoryParameter <String> 

     Required?     true 
     Position?     3 
     Default value 
     Accept pipeline input?  false 
     Accept wildcard characters? 
+0

を単に好奇心、.BATは.PS1を呼び出し、必須パラメータが左であると言うことができますときに何が起こりますかでる。 PS1の応答/エラーはどのように見えるのですか? – Quanda

+0

必須パラメータを指定せずにPowerShellスクリプトを呼び出すと、実行前に対話形式でスクリプトが表示されます。 "次のパラメータの値を指定します:aMandatoryParameter:" – llmora

関連する問題