Tôi đã nhìn thấy biểu tượng @ được sử dụng trong PowerShell để khởi tạo các mảng. Biểu tượng @ biểu thị chính xác những gì và tôi có thể đọc thêm về nó ở đâu?Biểu tượng "@" làm gì trong Powershell?
Trả lời
PowerShell sẽ thực sự đối xử với bất kỳ danh sách bằng dấu phẩy như một mảng:
"server1", "server2"
Vì vậy, @ là không bắt buộc trong những trường hợp . Tuy nhiên, đối với mảng kết hợp, các @ là cần thiết:
@ { "Key" = "Giá trị"; "khóa2" = "Value2"}
chính thức, @ là "nhà điều hành mảng." Bạn có thể đọc thêm về nó trong tài liệu được cài đặt cùng với PowerShell hoặc trong một cuốn sách như "Windows PowerShell: TFM", mà tôi đồng tác giả :).
Các Splatting hành
Để tạo một mảng, chúng ta tạo ra một biến và gán mảng. Mảng được ghi chú bằng ký hiệu "@". Chúng ta hãy xem các cuộc thảo luận ở trên và sử dụng một mảng để kết nối với nhiều máy tính từ xa:
$ strComputers = @ ("Server1", "server2", "Server3")
Chúng được sử dụng cho các mảng và băm.
Bạn cũng có thể bọc đầu ra của lệnh ghép ngắn (hoặc đường ống) trong @() để đảm bảo rằng những gì bạn nhận được là một mảng thay vì một mục duy nhất.
Ví dụ, dir thường trả về một danh sách, nhưng tùy thuộc vào các tùy chọn, nó có thể trả về một đối tượng duy nhất. Nếu bạn đang lập kế hoạch lặp qua các kết quả với một đối tượng foreach, bạn cần phải chắc chắn rằng bạn nhận được một danh sách trở lại. Dưới đây là một ví dụ contrived:
$ kết quả = @ (dir c: \ autoexec.bat)
hơn Một điều ... một mảng rỗng (muốn khởi tạo một biến) được ký hiệu @().
[mảng] $ một cú pháp là hơi rõ ràng hơn, trực quan, nhưng mẹo tốt. –
Trong PowerShell V2, @ cũng là toán tử 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
Thử nghiệm! Thưởng thức! Thuê!
Jeffrey Snover [MSFT] Kiến trúc sư của Windows Management Partner
Ok. Tôi có thể tha thứ cho sự không tuân thủ với màu sắc ECMA-48 cho điều này, bởi vì wow đó là khá mát mẻ. –
Đây là những gì tôi đang tìm kiếm: toán tử này được sử dụng trong ngữ cảnh splat trong tập lệnh triển khai Azure Resource Group. –
Trong khi các câu trả lời ở trên cung cấp nhất của câu trả lời nó rất hữu ích - ngay cả điều này muộn để các câu hỏi - để cung cấp câu trả lời đầy đủ, để wit :
mảng tiểu biểu (xem about_arrays)
lực lượng giá trị là một mảng, ngay cả khi một singleton hoặc null, ví dụ$a = @(ps | where name -like 'foo')
Hash initializer (xem about_hash_tables)
Khởi một bảng băm với cặp khóa-giá trị, ví dụ $HashArguments = @{ Path = "test.txt"; Destination = "test2.txt"; WhatIf = $true }
Splatting (xem about_splatting)
Hãy bạn gọi một lệnh với các tham số từ một mảng hoặc một bảng băm chứ không phải là thông số phong tục hơn được liệt kê riêng lẻ, ví dụ bằng cách sử dụng bảng băm chỉ trên, Copy-Item @HashArguments
đây các dây (xem about_quoting_rules)
Hãy bạn tạo chuỗi với dấu ngoặc kép dễ dàng nhúng, thường được sử dụng cho các chuỗi đa dòng, ví dụ:
$data = @"
line one
line two
something "quoted" here
"@
Vì loại câu hỏi này (ký hiệu 'x' có nghĩa là gì trong PowerShell?) rất phổ biến ở đây trên StackOverflow cũng như trong nhiều nhận xét của người đọc, tôi đặt cùng một từ vựng của dấu câu PowerShell, chỉ xuất bản d trên Simple-Talk.com. Đọc tất cả về @ cũng như% và # và $ _ và? và nhiều hơn nữa tại The Complete Guide to PowerShell Punctuation. Kèm theo bài viết là wallchart này cung cấp cho bạn mọi thứ trên một trang tính:
- 1. Biểu tượng "@" làm gì trong SQL?
- 2. Vấn đề với biểu tượng dấu gạch ngang trong powershell
- 3. Biểu tượng chính này làm gì - MATLAB?
- 4. Biểu thức Lambda trong Powershell
- 5. Biểu tượng "@" trong Nhận xét là gì?
- 6. Biểu tượng @ trong Javascript là gì?
- 7. Dấu ba chấm làm gì trong PowerShell?
- 8. Biểu tượng phần trăm làm gì trong một makefile?
- 9. Biểu tượng dấu mũ (^) làm gì trong JavaScript?
- 10. gì biểu tượng ::: trung bình trong R
- 11. Biểu tượng "^" trong C++ là gì?
- 12. các '#" biểu tượng trong Pascal là gì
- 13. Bảng biểu tượng là gì?
- 14. Biểu tượng "___emutls_get_address" là gì?
- 15. Biểu tượng __gmon_start__ là gì?
- 16. Struct hoặc đối tượng trong Powershell 2
- 17. Biểu tượng cơ sở dữ liệu có ý nghĩa gì trong các biểu tượng Eclipse?
- 18. Cách đếm đối tượng trong PowerShell?
- 19. Thêm đối tượng vào một mảng đối tượng trong Powershell
- 20. Độ phân giải biểu tượng là gì?
- 21. Biểu tượng '>' trong css có nghĩa là gì?
- 22. Biểu tượng "Điều đó" có ý nghĩa gì trong Scala
- 23. Đọc đối tượng Json trong Powershell 2.0
- 24. Các biểu tượng có ý nghĩa gì trong preg_match?
- 25. việc sử dụng biểu tượng ống là gì trong yaml
- 26. Trình duyệt "Biểu tượng" trong Visual Studio 2008 là gì?
- 27. Biểu tượng => có nghĩa là gì trong Haskell?
- 28. Ý nghĩa của biểu tượng $ trong jQuery là gì?
- 29. Biểu tượng này có ý nghĩa gì trong PHP <? =
- 30. Các đối tượng này trong biểu đồ jmap là gì?
Đảm bảo xem câu trả lời của Jeffrey Snover bên dưới ... @ không chỉ là số nhận dạng mảng. –