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?¿Qué hace el símbolo "@" en Powershell?
Respuesta
PowerShell realmente tratar cualquier lista separada por comas como una matriz:
"server1", "server2"
Así que la @ es opcional en los casos . Sin embargo, para las matrices asociativas, se requiere que el @:
@ { "clave" = "Valor"; "Key2" = "Valor 2"}
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 :).
El operador Splatting
para crear una matriz, creamos una variable y asignar la matriz. Las matrices se indican con el símbolo "@". Tomemos el debate anterior y utilizar una matriz para conectarse a varios equipos remotos:
$ strComputers = @ ("servidor 1", "servidor 2", "Server3")
Se utilizan para arrays y hashes.
También puede ajustar la salida de un cmdlet (o canalización) en @() para asegurarse de 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. He aquí un ejemplo artificioso:
$ resultados = @ (dir c: \ autoexec.bat)
Una cosa más ... una matriz vacía (como para inicializar una variable) se denota @().
[matriz] $ una sintaxis es algo más clara, visualmente, pero buena sugerencia. –
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
Experiment! ¡Disfrutar! ¡Contratar!
Jeffrey Snover [MSFT] Arquitecto socio de administración de Windows
Ok. Puedo perdonar el incumplimiento con los colores ECMA-48 para esto, porque guau eso es genial. –
Esto es lo que estaba buscando: este operador se usa en el contexto de splat en las secuencias de comandos de implementación de Azure Resource Group. –
Mientras que las respuestas anteriores proporcionan más de la respuesta es útil - incluso tan tarde a la pregunta - para proporcionar la respuesta completa, a saber :
matriz de sub-expresión (ver about_arrays)
Fuerzas el valor a ser una matriz, incluso si un único o un valor nulo, por ejemplo,$a = @(ps | where name -like 'foo')
Hash inicializador (ver about_hash_tables)
Inicializa una tabla hash con pares de valores clave, por ejemplo $HashArguments = @{ Path = "test.txt"; Destination = "test2.txt"; WhatIf = $true }
splatting (ver about_splatting)
te permite invocar un cmdlet con los parámetros de una matriz o una tabla hash en lugar de los parámetros más habituales enumerados individualmente, por ejemplo, usando la tabla hash justo por encima, Copy-Item @HashArguments
Aquí cadenas (ver about_quoting_rules)
de crear cadenas con citas fácilmente incorporados, utilizados normalmente para las cadenas de múltiples líneas, por ejemplo Let:
$data = @"
line one
line two
something "quoted" here
"@
Debido a que este tipo de pregunta (lo que significa la notación 'x' en PowerShell?) es tan común aquí en StackOverflow como en muchos comentarios de los lectores, armé un léxico de puntuación de PowerShell, solo publicado d en Simple-Talk.com. Lea todo sobre @, así como% y # y $ _ y? y más al The Complete Guide to PowerShell Punctuation. Adjunto al artículo está este gráfico que le da todo en una sola hoja:
- 1. ¿Qué hace el símbolo "@" en SQL?
- 2. ¿Qué hace el símbolo $ en VBA?
- 3. ¿Qué hace el script: do en powershell?
- 4. ¿Qué hace el doble símbolo "at" (@@) en un Makefile?
- 5. ¿Qué hace el símbolo de intercalación (^) en JavaScript?
- 6. ¿Por qué agregar el símbolo @ hace que esto funcione?
- 7. Windows powershell: cambiando el símbolo del sistema
- 8. ¿Qué hace un símbolo de porcentaje en un archivo MAKE?
- 9. Problema con el símbolo del tablero en powershell
- 10. ¿Para qué es el símbolo "@" en Comentarios?
- 11. ¿Qué hace el prefijo '@' en PHP?
- 12. ¿Qué significa $ _ en PowerShell?
- 13. ¿Qué significa el símbolo '/' en el CSS
- 14. ¿Qué es el símbolo __gmon_start__?
- 15. ¿Qué es el símbolo "___emutls_get_address"?
- 16. ¿Qué hace '^' en C# (Enums)?
- 17. ¿Qué significa el símbolo "#" en TSQL?
- 18. ¿Para qué sirve el símbolo $ en JavaScript
- 19. ¿Qué significa el símbolo '>' en css?
- 20. ¿Qué es el símbolo "^" en C++?
- 21. ¿Qué representa el símbolo @ en objetivo-c?
- 22. ¿Qué significa el símbolo ::: media en I
- 23. Símbolo desconocido en el algoritmo: ¿qué significa ∀?
- 24. ¿Qué significa el símbolo @ en R?
- 25. ¿Qué significa el símbolo => en Haskell?
- 26. ¿Qué hace "/" en PL/SQL?
- 27. ¿Qué significa @: (en el símbolo dos puntos) en un Makefile?
- 28. ¿Qué hace el @sign?
- 29. ¿Qué representa $$, $ ?, $^en powershell?
- 30. Powershell: hace referencia a una propiedad que contiene un espacio
Asegúrese de revisar la respuesta de Jeffrey Snover a continuación ... @ es más que un identificador de matriz. –