Comment utiliser le symbole @ dans PowerShell

  1. Utiliser le symbole @ pour créer un tableau dans PowerShell
  2. Utiliser le symbole @ pour créer une table de hachage dans PowerShell
  3. Utiliser le symbole @ pour les chaînes ici dans PowerShell
  4. Utiliser le symbole @ pour effectuer le splatting avec des tableaux dans PowerShell
  5. Utiliser le symbole @ pour effectuer le splatting avec des tables de hachage dans PowerShell
  6. Conclusion
Nous avons créé une vidéo YouTube détaillée pour accompagner cet article, intégrée ci-dessous !
Comment utiliser le symbole @ dans PowerShell

PowerShell, un langage de script puissant et un shell de ligne de commande, est connu pour sa flexibilité et son ensemble de fonctionnalités étendu. L’une des fonctionnalités moins connues mais incroyablement puissantes de PowerShell est l’utilisation du symbole @.

Cet article explore les applications multifacettes du symbole @ dans le scripting PowerShell, révélant ses capacités à créer des tableaux, des tables de hachage et des chaînes ici, en particulier dans la technique avancée de splatting. Le splatting, une méthode pour passer des paramètres aux fonctions et cmdlets, améliore considérablement la lisibilité et la maintenabilité des scripts.

En explorant ces utilisations du symbole @, l’article sert de guide complet tant pour les débutants que pour les utilisateurs avancés de PowerShell cherchant à exploiter le plein potentiel de ce langage de script.

Utiliser le symbole @ pour créer un tableau dans PowerShell

Dans PowerShell, le symbole @ est polyvalent, mais l’un de ses rôles fondamentaux est dans la création et la manipulation de tableaux. Les tableaux sont essentiels dans n’importe quel langage de programmation, servant à stocker et à manipuler une collection d’éléments.

Le symbole @ de PowerShell fournit une méthode claire et concise pour définir des tableaux, garantissant même que les éléments uniques ou les résultats des commandes soient traités comme des tableaux.

Exemple :

# Define a simple Print function
function Print($message) {
    Write-Host $message
}

# Create an array of numbers
$numbers = @(1, 2, 3, 4, 5)

# Iterate over the array and print each number
foreach ($number in $numbers) {
    Print $number
}

Dans ce script, nous définissons d’abord une fonction Print qui prend un seul paramètre $message et utilise Write-Host pour l’afficher. Cette fonction sert de mécanisme de sortie de base pour notre démonstration.

Ensuite, nous créons un tableau, $numbers, en utilisant le symbole @. Ce tableau est initialisé avec cinq nombres : 1, 2, 3, 4 et 5.

Remarquez l’utilisation de @() autour des nombres, garantissant qu’ils soient traités comme un tableau.

Après la création du tableau, nous utilisons une boucle foreach pour itérer sur chaque élément du tableau $numbers. À l’intérieur de la boucle, nous appelons notre fonction Print, en passant chaque numéro à son tour.

Sortie :

utilisez le symbole @ dans powershell - sortie 1

Utiliser le symbole @ pour créer une table de hachage dans PowerShell

Une table de hachage est une structure de données compacte qui stocke une ou plusieurs paires de clés et de valeurs. Elle est également connue sous le nom de dictionnaire ou de tableau associatif.

La syntaxe pour créer une table de hachage dans PowerShell commence par le symbole @. Les clés et les valeurs sont enfermées dans des accolades {}.

Exemple :

# Define a simple Print function
function Print($message) {
    Write-Host $message
}

# Create a hashtable of employee details
$employee = @{
    Name       = 'John Doe'
    Department = 'IT'
    Position   = 'Analyst'
}

# Iterate over the hashtable and print each detail
foreach ($key in $employee.Keys) {
    $value = $employee[$key]
    Print "Key: $key, Value: $value"
}

Dans ce script, nous commençons par définir une fonction Print, qui est un utilitaire de base pour envoyer des messages à l’hôte.

Ensuite, nous créons une table de hachage $employee en utilisant le symbole @. Cette table de hachage contient trois paires clé-valeur représentant le nom, le département et le poste d’un employé.

Après avoir défini la table de hachage, nous utilisons une boucle foreach pour itérer sur chaque clé dans la table de hachage. À l’intérieur de la boucle, nous récupérons la valeur correspondant à chaque clé, puis nous utilisons notre fonction Print pour afficher à la fois la clé et sa valeur.

Sortie :

utiliser le symbole @ dans powershell - sortie 2

Utiliser le symbole @ pour les chaînes ici dans PowerShell

Une autre utilisation importante du symbole @ est de définir des chaînes ici dans PowerShell. Les guillemets sont interprétés littéralement dans une chaîne ici.

Le principal objectif des chaînes ici dans PowerShell est de simplifier la gestion de longues chaînes, en particulier celles qui nécessitent un formatage spécifique, des sauts de ligne ou des caractères spéciaux. La gestion régulière des chaînes dans PowerShell, utilisant des guillemets simples ' ou des guillemets doubles ", peut devenir lourde avec des textes multiligne.

Exemple :

# Define a simple Print function
function Print($message) {
    Write-Host $message
}

# Define a variable
$name = "John"

# Create an expandable here-string
$multiLineText = @"
Hello, $name!
Welcome to PowerShell scripting.
This is an example of a multi-line here-string.
"@

# Print the here-string
Print $multiLineText

Dans ce script, nous commençons par définir une fonction Print pour afficher la sortie.

Nous définissons ensuite une variable $name qui est mise à John. Après cela, nous créons une chaîne ici extensible $multiLineText.

Remarquez comment les délimiteurs @" "@ sont utilisés pour commencer et terminer la chaîne multiligne. À l’intérieur de cette chaîne ici, la variable $name est incluse, qui sera développée en sa valeur.

Enfin, nous appelons la fonction Print pour afficher le contenu de notre chaîne ici.

Sortie :

utilisez le symbole @ dans PowerShell - sortie 3

Une chaîne ici contient tous les textes entre @" "@.

Chaîne ici avec guillemets simples :

# Define a simple Print function
function Print($message) {
    Write-Host $message
}

# Create a single-quoted here-string
$literalText = @'
This is an example of a single-quoted here-string.
Special characters like $ or ` won't be processed.
Everything here is treated as literal text.
'@

# Print the here-string
Print $literalText

Dans notre script, nous commençons par définir une fonction Print qui affiche un message donné à l’hôte.

Ensuite, nous créons une chaîne ici entre guillemets simples nommée $literalText. Les délimiteurs @' '@ indiquent le début et la fin de la chaîne ici.

À l’intérieur de ces délimiteurs, nous incluons du texte qui mentionne des caractères spéciaux comme $ et un accent grave `, qui auraient normalement des significations spéciales dans PowerShell.

Enfin, nous appelons la fonction Print pour afficher le contenu de notre chaîne ici.

Sortie :

utiliser le symbole @ dans powershell - sortie 4

Dans les chaînes ici avec guillemets simples, les variables sont interprétées littéralement et affichées dans la sortie, mais pas dans les chaînes ici avec guillemets doubles.

Utiliser le symbole @ pour effectuer le splatting avec des tableaux dans PowerShell

Le splatting est principalement utilisé pour améliorer la lisibilité et la maintenabilité des scripts, surtout lorsque vous traitez des commandes nécessitant un grand nombre de paramètres. Plutôt que de lister chaque paramètre et sa valeur directement dans la commande, le splatting vous permet de les définir dans un tableau ou une table de hachage et de les passer tous en une seule fois en utilisant le symbole @.

Vous pouvez utiliser le symbole @ pour le splatting des tableaux dans la commande. Le symbole @ peut utiliser un tableau pour splatter des valeurs pour des paramètres positionnels qui n’ont pas besoin des noms de paramètres.

Exemple :

# Define a simple Print function
function Print-Message($part1, $part2, $part3) {
    Write-Host "$part1 - $part2 - $part3"
}

# Define an array of parameters
$paramArray = @('Hello', 'PowerShell', 'Splatting')

# Call the function using splatting
Print-Message @paramArray

Dans cet exemple, nous commençons par définir une fonction Print-Message qui prend trois paramètres et les affiche dans une chaîne formatée.

Nous créons ensuite un tableau $paramArray contenant trois valeurs de chaîne : Hello, PowerShell et Splatting. Ces valeurs correspondent aux paramètres $part1, $part2 et $part3 de notre fonction.

En appelant la fonction Print-Message, nous utilisons le splatting pour passer le tableau de paramètres. Le symbole @ avant $paramArray indique que les éléments du tableau doivent être mappés aux paramètres de la fonction dans leur ordre respectif.

Sortie :

utiliser le symbole @ dans powershell - sortie 5

Utiliser le symbole @ pour effectuer le splatting avec des tables de hachage dans PowerShell

De même, vous pouvez utiliser le symbole @ pour le splatting des tables de hachage.

Le principal objectif du splatting avec des tables de hachage est de simplifier le processus de passage de paramètres aux fonctions et cmdlets dans PowerShell. Cela devient particulièrement précieux pour gérer des commandes complexes avec de nombreux paramètres, améliorant la lisibilité et la maintenabilité du code.

Le splatting permet une manière plus structurée et plus claire de spécifier des paramètres, ce qui est bénéfique dans le débogage et l’édition de scripts.

Exemple :

# Define a simple function
function Get-Greeting {
    param (
        [string]$Name,
        [string]$TimeOfDay
    )
    "Good $TimeOfDay, $Name!"
}

# Define a hash table of parameters
$greetingParams = @{
    Name      = 'Alice'
    TimeOfDay = 'Morning'
}

# Call the function using splatting
$greeting = Get-Greeting @greetingParams
Write-Host $greeting

Dans notre script, nous définissons d’abord une fonction Get-Greeting qui accepte deux paramètres : Name et TimeOfDay.

Ensuite, nous créons une table de hachage $greetingParams et la remplissons avec les clés Name et TimeOfDay, leur attribuant les valeurs 'Alice' et 'Morning', respectivement. Ces clés correspondent aux noms des paramètres de la fonction Get-Greeting.

Lors de l’appel de Get-Greeting, nous utilisons le splatting en préfixant la variable de la table de hachage $greetingParams avec le symbole @. Cette action mappe les clés de la table de hachage aux paramètres correspondants de la fonction.

Sortie :

utiliser le symbole @ dans powershell - sortie 6

Conclusion

Tout au long de cet article, nous avons exploré les applications polyvalentes du symbole @ dans PowerShell, un aspect qui passe souvent inaperçu mais qui détient un immense potentiel dans le scripting. De la création de tableaux et de tables de hachage à la définition de chaînes ici et à l’implémentation du splatting, le symbole @ est un petit mais puissant outil dans l’arsenal d’un scripteur PowerShell.

Sa capacité à simplifier le passage complexe de paramètres et à améliorer la lisibilité du code est particulièrement notable dans le contexte du splatting avec des tableaux et des tables de hachage. Comme nous l’avons vu, l’utilisation du symbole @ dans PowerShell n’est pas qu’une question de syntaxe, mais une porte d’entrée vers des pratiques de scripting plus efficaces, lisibles et maintenables.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website