Réponses:
PowerShell traitera en fait toute liste séparée par des virgules comme un tableau:
"server1","server2"
Le @ est donc facultatif dans ces cas. Cependant, pour les tableaux associatifs, le @ est obligatoire:
@{"Key"="Value";"Key2"="Value2"}
Officiellement, @ est «l'opérateur de tableau». Vous pouvez en savoir plus à ce sujet dans la documentation installée avec PowerShell ou dans un livre comme «Windows PowerShell: TFM», que j'ai co-écrit.
Dans PowerShell V2, @ est également l' opérateur Splat .
PS> # First use it to create a hashtable of parameters:
PS> $params = @{path = "c:\temp"; Recurse= $true}
PS> # Then use it to SPLAT the parameters - which is to say to expand a hash table
PS> # into a set of command line parameters.
PS> dir @params
PS> # That was the equivalent of:
PS> dir -Path c:\temp -Recurse:$true
Bien que les réponses ci-dessus fournissent la plupart de la réponse, il est utile - même si tard à la question - de fournir la réponse complète, à savoir:
Sous-expression de tableau (voir about_arrays )
Force la valeur à être un tableau, même si un singleton ou un nul, par exemple $a = @(ps | where name -like 'foo')
Initialiseur de hachage (voir about_hash_tables )
Initialise une table de hachage avec des paires clé-valeur, par exemple
$HashArguments = @{ Path = "test.txt"; Destination = "test2.txt"; WhatIf = $true }
Splatting (voir about_splatting )
Appelons une applet de commande avec des paramètres d'un tableau ou d'une table de hachage plutôt que les paramètres énumérés individuellement plus habituels, par exemple en utilisant la table de hachage juste au-dessus, Copy-Item @HashArguments
Ici les chaînes (voir about_quoting_rules )
Créons des chaînes avec des guillemets facilement incorporés, généralement utilisées pour les chaînes multilignes, par exemple:
$data = @"
line one
line two
something "quoted" here
"@
Parce que ce type de question ( que signifie la notation `` x '' dans PowerShell? ) Est si courant ici sur StackOverflow ainsi que dans de nombreux commentaires de lecteurs, j'ai rassemblé un lexique de la ponctuation PowerShell, juste publié sur Simple-Talk.com. Lisez tout sur @ ainsi que sur% et # et $ _ et? et plus encore sur le Guide complet de la ponctuation PowerShell . Attaché à l'article se trouve ce tableau mural qui vous donne tout sur une seule feuille:
Vous pouvez également encapsuler la sortie d'une applet de commande (ou d'un pipeline) @()
pour vous assurer que ce que vous récupérez est un tableau plutôt qu'un seul élément.
Par exemple, dir renvoie généralement une liste, mais selon les options, il peut renvoyer un seul objet. Si vous prévoyez de parcourir les résultats avec un objet foreach, vous devez vous assurer de récupérer une liste. Voici un exemple artificiel:
$results = @( dir c:\autoexec.bat)
Encore une chose ... un tableau vide (comme pour initialiser une variable) est noté @()
.
L'opérateur d'éclaboussures
Pour créer un tableau, nous créons une variable et assignons le tableau. Les tableaux sont signalés par le symbole «@». Prenons la discussion ci-dessus et utilisons un tableau pour se connecter à plusieurs ordinateurs distants:
$strComputers = @("Server1", "Server2", "Server3")<enter>
Ils sont utilisés pour les tableaux et les hachages.
Tutoriel PowerShell 7: Accumuler, rappeler et modifier des données