He visto el símbolo @ utilizado en PowerShell para inicializar matrices. ¿Qué indica exactamente el símbolo @ y dónde puedo leer más al respecto?
syntax
powershell
GrahamMc
fuente
fuente
En PowerShell V2, @ también es el operador de Splat .
fuente
Si bien las respuestas anteriores proporcionan la mayor parte de la respuesta, es útil, incluso tan tarde para la pregunta, proporcionar la respuesta completa, a saber:
Subexpresión de matriz (consulte about_arrays )
Obliga al valor a ser una matriz, incluso si es un singleton o un nulo, por ejemplo
$a = @(ps | where name -like 'foo')
Inicializador de hash (consulte about_hash_tables )
Inicializa una tabla hash con pares clave-valor, p. Ej.
$HashArguments = @{ Path = "test.txt"; Destination = "test2.txt"; WhatIf = $true }
Salpicaduras (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 )
Vamos a crear cadenas con comillas fácilmente incrustadas, normalmente utilizadas para cadenas de varias líneas, por ejemplo:
Debido a que este tipo de pregunta ( ¿qué significa la notación 'x' en PowerShell? ) Es tan común aquí en StackOverflow, así como en muchos comentarios de lectores, reuní un léxico de puntuación de PowerShell, recién publicado 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 se encuentra este gráfico mural que le brinda todo en una sola hoja:
fuente
También puede ajustar la salida de un cmdlet (o canalización)
@()
para asegurarse de que lo que obtenga sea 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:
Una cosa más ... se denota una matriz vacía (como para inicializar una variable)
@()
.fuente
El operador de salpicaduras
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:
Se utilizan para matrices y hashes.
Tutorial 7 de PowerShell: acumular, recuperar y modificar datos
Literales de matriz en PowerShell
fuente