Comment rendre les paramètres obligatoires dans PowerShell?

Comment rendre les paramètres obligatoires dans PowerShell?

26
demandé sur marc_s 2011-08-23 15:39:25

2 réponses

Vous spécifiez dans un attribut au-dessus de chaque paramètre comme ceci:

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

    process{
       ...
    }
}
32
répondu Jamiec 2018-01-10 14:47:39

Pour rendre un paramètre obligatoire, ajoutez un "Mandatory = $true" à la description du paramètre. Pour rendre un paramètre facultatif, laissez simplement l'instruction" obligatoire".

Ce code fonctionne pour les paramètres de script et de fonction:

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

  [String]$nonMandatoryParameter,

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

)

Assurez-vous que l'instruction "param" est la première (sauf pour les commentaires et les lignes vides) dans le script ou la fonction.

Vous pouvez utiliser L'applet de commande" Get-Help " pour vérifier que les paramètres ont été définis correctement:

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?
13
répondu llmora 2018-05-24 09:09:21