Widziałem symbol @ używany w PowerShell do inicjowania tablic. Co dokładnie oznacza symbol @ i gdzie mogę przeczytać więcej na jego temat?Co robi symbol "@" w Powershell?
Odpowiedz
PowerShell rzeczywiście traktują każdą listę oddzielonych przecinkami jako tablica:
"server1", "server2"
Tak @ jest opcjonalne w tych przypadkach . Jednak dla asocjacyjnych The @ wymagana jest
@ { "klucz" = "wartość", "klucz 2" = "wartość2"}
Oficjalnie @ jest "operator tablicy". Możesz przeczytać więcej na ten temat w dokumentacji, która została zainstalowana wraz z PowerShell, lub w książce takiej jak "Windows PowerShell: TFM", którą współautorem :).
splatting Operator
Aby utworzyć tablicę tworzymy zmienną i przypisać tablicę. Tablice są oznaczone symbolem "@". Weźmy dyskusję nad i używać tablicy do podłączenia do wielu komputerów zdalnych:
$ strComputers = @ („Serwer1”, „Serwer2”, „serwer3”)
Służą do tablic i skrótów.
Można również zawijać dane wyjściowe cmdletu (lub potoku) w @(), aby upewnić się, że to, co otrzymasz, jest tablicą, a nie pojedynczym elementem.
Na przykład dir zwykle zwraca listę, ale w zależności od opcji może zwrócić pojedynczy obiekt. Jeśli planujesz iterować wyniki z foreach-object, musisz upewnić się, że otrzymasz listę z powrotem. Oto zmyślony przykład:
$ results = @ (dir c: \ autoexec.bat)
Jeszcze jedno ... pustą tablicą (jak zainicjować zmienną) oznaczamy @().
[array] $ składnia jest nieco jaśniejsza, wizualnie, ale dobra wskazówka. –
W PowerShell V2 @ jest również operatorem 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
Eksperyment! Cieszyć się! Angażować!
Jeffrey Snover [MSFT] Architekt Okna Partner Zarządzanie
Ok. Mogę wybaczyć tę niezgodność z kolorami ECMA-48, ponieważ wow jest całkiem fajnie. –
Tego właśnie szukałem: ten operator jest używany w kontekście ikon w skryptach wdrażania Azure Resource Group. –
Choć powyższe reakcje dostarczają najwięcej na odpowiedź jest przydatna - nawet tak późno na pytanie - w celu zapewnienia pełnej odpowiedzi, a mianowicie :
macierzy sub ekspresja (patrz about_arrays)
Wymusza wartość jako macierz, nawet pojedyncza lub zerowy, np$a = @(ps | where name -like 'foo')
Hash inicjator (patrz about_hash_tables)
Inicjuje tabeli mieszania parami klucz wartość, np $HashArguments = @{ Path = "test.txt"; Destination = "test2.txt"; WhatIf = $true }
splatting (patrz about_splatting)
pozwala ci wywołać cmdlet z parametrów z tablicy lub hash-table zamiast zwyczajowych bardziej indywidualnie wymienionych parametrów, na przykład korzystając z tabeli mieszania tuż powyżej, Copy-Item @HashArguments
Tu Struny (patrz about_quoting_rules)
pozwala ci tworzyć ciągi z łatwością wbudowanych cytatów, zazwyczaj używany do strun multi-line, np:
$data = @"
line one
line two
something "quoted" here
"@
Ponieważ tego typu pytanie (, co oznacza notacja "x" w PowerShell?) jest tak powszechne w StackOverflow, jak również w wielu komentarzach czytelników, skomponowałem leksykę interpunkcji PowerShell, po prostu publikuj d na Simple-Talk.com. Przeczytaj wszystko na temat @, a także% i # oraz $ _ i? i więcej pod adresem The Complete Guide to PowerShell Punctuation. Do artykułu dołączona jest ta tablica ścienna, która zawiera wszystko na jednym arkuszu:
- 1. Co robi symbol opiekuna (^) w JavaScript?
- 2. Co robi symbol @ w imporcie javascript?
- 3. Co robi symbol procentowy w pliku Makefile?
- 4. W Swift, co robi! symbol oznacza w sygnaturze funkcji?
- 5. Co to jest symbol "@" w komentarzach?
- 6. Co robi << w Pythonie?
- 7. Co oznacza symbol "To" w Scali?
- 8. Co robi * w CSS?
- 9. Co robi% w JavaScript?
- 10. Co oznacza symbol "#" w TSQL?
- 11. Co oznacza symbol @ w R?
- 12. Co oznacza symbol tylda (~) w CSS
- 13. Co oznacza $$, $ ?, $^w powershell?
- 14. Co robi funkcja "@comment()" w XPath?
- 15. Co Boxen i co robi?
- 16. Co robi znak @ w jQuery?
- 17. Co robi \ 1 w sed?
- 18. Co robi Collections.unmodifiableSet() w Javie?
- 19. Co robi session_destroy() w PHP?
- 20. Co robi? zrobić w Elixir
- 21. Co robi `` ... znaczy w idź
- 22. Co robi rebaseall w Cygwin?
- 23. Co robi "^: static" w Clojure?
- 24. Co [[]] * 2 robi w pythonie?
- 25. Co robi config.gem (w environment.rb)?
- 26. Co {} robi w ciągu znaków?
- 27. Co robi dodatkowy przycisk "$()" w "$ ($())"?
- 28. Co robi% w poniższym kodzie?
- 29. co robi int() w C++?
- 30. Co robi * ~ w pliku .gitignore?
Upewnij się, że odpowiedź Jeffrey Snover poniżej ... @ to coś więcej niż identyfikator tablicy. –