Comment obtenir des arguments de ligne de commande dans Windows PowerShell

  1. Définir des paramètres dans un script PowerShell
  2. Paramètres nommés dans un script PowerShell
  3. Assignation de valeurs par défaut aux paramètres dans un script PowerShell
  4. Paramètres switch dans un script PowerShell
  5. Paramètres obligatoires dans un script PowerShell
Comment obtenir des arguments de ligne de commande dans Windows PowerShell

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

Dans cet article, vous apprendrez à créer des scripts avec la fonction de paramètre, à les utiliser, et certaines meilleures pratiques pour construire des paramètres.

Définir des paramètres dans un script PowerShell

Les administrateurs peuvent créer des paramètres pour des scripts et des fonctions en utilisant 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’assigner un type de données au paramètre à l’aide d’un bloc de paramètres [Parameter()] et d’encadrer le type de données avec des 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 transmise que si la valeur donnée a un type de données String.

Paramètres nommés dans un 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 le 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. N’oubliez pas 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"

Nous pouvons ensuite 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'

Sortie :

Hello World!
I am happy

Assignation de valeurs par défaut aux paramètres dans un script PowerShell

Nous pouvons pré-assigner une valeur à un paramètre en lui donnant une valeur à l’intérieur du script. Ensuite, exécuter le script sans transmettre de valeurs depuis 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

Sortie :

Hello World!
I am happy

Paramètres switch dans un 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 des 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 du script en utilisant la syntaxe ci-dessous.

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

Sortie :

User denied confirmation.

Paramètres obligatoires dans un 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. Nous pouvons rendre un paramètre obligatoire en ajoutant un attribut Mandatory à l’intérieur du bloc de paramètres [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 ne permettra pas à ce script de s’exécuter et vous demandera une valeur.

.\Hello_World.ps1

Sortie :

cmdlet hello_world.ps1 at command pipeline position 1
Supply values for the following parameters:
message:
Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
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