Obtenir des arguments de ligne de commande dans Windows PowerShell

Marion Paul Kenneth Mendoza 30 janvier 2023
  1. Définir les paramètres dans le script PowerShell
  2. Paramètres nommés dans le script PowerShell
  3. Attribuer des valeurs par défaut aux paramètres dans le script PowerShell
  4. Paramètres de commutateur dans le script PowerShell
  5. Paramètres obligatoires dans le script PowerShell
Obtenir des arguments de ligne de commande dans Windows PowerShell

Nous gérons les arguments à l’aide de la fonction de paramètre Windows PowerShell appelée param(). La fonction de paramètre Windows PowerShell est un composant fondamental de tout script. Un paramètre est la manière dont les développeurs permettent aux utilisateurs de scripts de fournir des entrées lors de l’exécution.

Dans cet article, vous apprendrez à créer des scripts avec la fonction de paramètre, à les utiliser et à découvrir quelques bonnes pratiques pour créer des paramètres.

Définir les paramètres dans le script PowerShell

Les administrateurs peuvent créer des paramètres pour les scripts et les fonctions à l’aide de la fonction de paramètre param(). Une fonction contient un ou plusieurs paramètres définis par des variables.

Hello_World.ps1 :

param(
     $message
)

Cependant, pour garantir que le paramètre n’accepte que le type d’entrée dont vous avez besoin, les meilleures pratiques dictent d’attribuer un type de données au paramètre à l’aide d’un bloc paramètre [Parameter()] et à entourer le type de données de crochets [] avant la variable.

Hello_World.ps1 :

param(
    [Parameter()]
    [String]$message
)

Dans l’exemple Hello_World.ps1 ci-dessus, la variable message n’acceptera une valeur passée que si la valeur donnée a un type de données String.

Paramètres nommés dans le script PowerShell

Une façon d’utiliser la fonction de paramètre dans un script est via le nom du paramètre - cette méthode est appelée paramètres nommés. Lors de l’appel d’un script ou d’une fonction via des paramètres nommés, nous utilisons le nom de la variable comme nom complet du paramètre.

Nous avons créé un Hello_World.ps1 et défini des variables à l’intérieur de la fonction de paramètre dans cet exemple. Rappelez-vous que nous pouvons mettre une ou plusieurs variables à l’intérieur de la fonction de paramètre.

Hello_World.ps1 :

param(
    [Parameter()]
    [String]$message,
    [String]$emotion
)

Write-Output $message
Write-Output "I am $emotion"

On peut alors utiliser les paramètres nommés comme argument lors de l’exécution d’un fichier .ps1.

.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy'

Production :

Hello World!
I am happy

Attribuer des valeurs par défaut aux paramètres dans le script PowerShell

Nous pouvons pré-assigner une valeur à un paramètre en donnant au paramètre une valeur à l’intérieur du script. Ensuite, exécuter le script sans passer les valeurs de la ligne d’exécution prendra la valeur par défaut de la variable définie à l’intérieur du script.

param(
    [Parameter()]
    [String]$message = "Hello World",
    [String]$emotion = "happy"
)

Write-Output $message
Write-Output "I am $emotion"
.\Hello_World.ps1

Production :

Hello World!
I am happy

Paramètres de commutateur dans le script PowerShell

Un autre paramètre que nous pouvons utiliser est le paramètre switch défini par le type de données [switch]. Le paramètre switch est utilisé pour les valeurs binaires ou booléennes pour indiquer true ou false.

Hello_World.ps1 :

param(
    [Parameter()]
    [String]$message,
    [String]$emotion,
    [Switch]$display
)
if($display){
    Write-Output $message
    Write-Output "I am $emotion"
}else{
    Write-Output "User denied confirmation."
}

Nous pouvons appeler notre script avec le paramètre script en utilisant la syntaxe ci-dessous.

.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy' -display:$false

Production :

User denied confirmation.

Paramètres obligatoires dans le script PowerShell

Il est courant d’avoir un ou plusieurs paramètres qui doivent être utilisés lors de l’exécution d’un script. On peut rendre un paramètre obligatoire en ajoutant un attribut Mandatory à l’intérieur du bloc paramètre [Parameter()].

Hello_World.ps1 :

param(
    [Parameter(Mandatory)]
    [String]$message,
    [String]$emotion,
    [Switch]$display
)
if($display){
    Write-Output $message
    Write-Output "I am $emotion"
}else{
    Write-Output "User denied confirmation."
}

Lors de l’exécution de Hello_World.ps1, Windows PowerShell n’autorise pas l’exécution du script et vous demande une valeur.

.\Hello_World.ps1

Production :

cmdlet hello_world.ps1 at command pipeline position 1
Supply values for the following parameters:
message:
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn