syntax - usar - powershell trucos
¿Qué hace el símbolo "@" en Powershell? (5)
En PowerShell V2, @ es también el operador 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
¡Experimentar! ¡Disfrutar! ¡Contratar!
Jeffrey Snover [MSFT] Arquitecto de Windows Management Partner
He visto el símbolo @ utilizado en PowerShell para inicializar matrices. ¿Qué significa exactamente el símbolo @ y dónde puedo leer más al respecto?
PowerShell realmente tratará cualquier lista separada por comas como una matriz:
"servidor1", "servidor2"
Entonces el @ es opcional en esos casos. Sin embargo, para matrices asociativas, se requiere @:
@ {"Key" = "Value"; "Key2" = "Value2"}
Oficialmente, @ es el "operador de matriz". Puede leer más sobre esto en la documentación que se instaló junto con PowerShell, o en un libro como "Windows PowerShell: TFM", del cual soy coautor :).
Si bien las respuestas anteriores proporcionan la mayor parte de la respuesta, es útil, incluso tan tarde a la pregunta, proporcionar la respuesta completa, a saber:
about_arrays matriz (ver about_arrays )
Obliga a que el valor sea una matriz, incluso si es un singleton o un valor nulo, por ejemplo $a = @(ps | where name -like ''foo'')
Inicializador hash (ver about_hash_tables )
Inicializa una tabla hash con pares clave-valor, por ejemplo, $HashArguments = @{ Path = "test.txt"; Destination = "test2.txt"; WhatIf = $true }
$HashArguments = @{ Path = "test.txt"; Destination = "test2.txt"; WhatIf = $true }
Splatting (ver about_splatting )
Vamos a invocar un cmdlet con parámetros de una matriz o una tabla hash en lugar de los parámetros enumerados individualmente más habituales, por ejemplo, utilizando la tabla hash justo arriba, Copy-Item @HashArguments
Aquí cadenas (ver about_quoting_rules )
Le permite crear cadenas con comillas fáciles de insertar, generalmente usadas para cadenas de varias líneas, por ejemplo:
$data = @"
line one
line two
something "quoted" here
"@
Debido a que este tipo de pregunta ( ¿qué significa la notación ''x'' en PowerShell? ) Es tan común aquí en como en muchos comentarios de los lectores, armé un léxico de puntuación de PowerShell, que acaba de publicarse en Simple-Talk.com. Lea todo sobre @, así como% y # y $ _ y? y más en The Complete Guide to PowerShell Punctuation . Adjunto al artículo está este gráfico que le da todo en una sola hoja:
También puede ajustar el resultado de un cmdlet (o canalización) en @ () para garantizar que lo que obtiene es una matriz en lugar de un solo elemento.
Por ejemplo, dir generalmente devuelve una lista, pero dependiendo de las opciones, puede devolver un solo objeto. Si planea iterar a través de los resultados con un objeto foreach, debe asegurarse de obtener una lista. Aquí hay un ejemplo artificial:
$ results = @ (dir c: / autoexec.bat)
Una cosa más ... una matriz vacía (como inicializar una variable) se denota @ ().
El operador Splatting
Para crear una matriz, creamos una variable y asignamos la matriz. Las matrices se indican con el símbolo "@". Tomemos la discusión anterior y usemos una matriz para conectarnos a múltiples computadoras remotas:
$ strComputers = @ ("Servidor1", "Servidor2", "Servidor3")
Se usan para matrices y hash.
Tutorial de PowerShell 7: Acumular, recuperar y modificar datos