Tôi đã thấy các đề cập về cú pháp PowerShell 3.0 được cải thiện nhưng không phải là một ví dụ, nó trông như thế nào?PowerShell 3.0 được cho là có cú pháp rõ ràng hơn, trông nó như thế nào?
Trả lời
Powershell hiện có cú pháp khá rõ ràng, vì vậy không cần nhiều cải tiến.
Một bổ sung mới mà tôi làm như thế là Hash Table as objects
, nơi bạn có thể tạo các đối tượng bằng cách thông qua hastable với thuộc tính của nó:
[<ClassName>]$Variable = @{<Property>=<Value>;<Property>=<Value>}
Vì vậy, cách gọn gàng hơn bản mới hơn của tạo các đối tượng tùy chỉnh là:
$obj = [PSCustomObject]@{a=1; b=2; c=3; d=4}
Chuyển hướng đã được tăng cường. Giờ đây, bạn có các luồng để tiết, sửa lỗi và cảnh báo ngoài thông thường (đường dẫn) và lỗi và do đó bạn có thể thực hiện chuyển hướng như 5>&1
Bạn có thể sử dụng biến tùy chọn $PSDefaultParameterValues
để đặt giá trị tham số mặc định cho lệnh ghép ngắn.
Có là [ordered]
gia tốc mới để tạo ra hastable lệnh (từ điển):
$a = [ordered]@{a=1;b=2;d=3;c=4}
Từ một câu trả lời ở đây trong SO, tôi nhận ra rằng -in
là mới trong Powershell v3.0:
Vì vậy, bạn làm điều gì đó như 1 -in 1,2,3
. Trước đây chúng ta chỉ có -contains
Cmdlets:
Bạn có thể cập nhật được giúp đỡ với Update-Help
cmdlet. Có các lệnh ghép ngắn liên quan đến web như Invoke- WebRequest
. Bạn cũng có thể xử lý JSON bằng cách sử dụng các lệnh ghép ngắn ConverTo-JSON
và ConvertFrom-JSON
.
"có thể đặt hàng vội vàng (từ điển)": Tôi nghĩ 'từ điển' và 'hashtable' là đồng nghĩa. Có lẽ tôi đang bị nhầm lẫn với Python dicts, nhưng từ điển không áp đặt trật tự, phải không? Bạn có thể làm rõ điều đó không? –
Dưới đây là một ví dụ:
dir | where length -lt 10
Trước 3.0, nó đã có
dir | where {$_.length -lt 10}
chỉnh sửa: ví dụ khác, lần này là với foreach-object
dir | foreach-object length
+1 - Thậm chí không nhận thấy điều này trước đây. – manojlds
Tôi đồng ý với người gửi. Đây là một cái gì đó tôi mong đợi để xem một số bài viết về, bởi vì nó làm cho các kịch bản dễ đọc hơn một chút. Tôi không nghĩ tôi thích nó. –
Một số lệnh ghép ngắn phổ biến *-Object
sử dụng nhiều bộ tham số để thực hiện cú pháp đơn giản. Hãy xem này trong V3:
C:\PS> Get-Command Where-Object -Syntax
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] [-EQ] [<CommonParameters>]
Where-Object [-FilterScript] <scriptblock> [-InputObject <psobject>] [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -CGT [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -CNE [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -LT [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -CEQ [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -NE [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -GT [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -CLT [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -GE [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -CGE [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -LE [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -CLE [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -Like [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -CLike [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -NotLike [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -CNotLike [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -Match [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -CMatch [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -NotMatch [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -CNotMatch [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -Contains [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -CContains [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -NotContains [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -CNotContains [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -In [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -CIn [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -NotIn [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -CNotIn [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -Is [<CommonParameters>]
Where-Object [-Property] <string> [[-Value] <Object>] [-InputObject <psobject>] -IsNot [<CommonParameters>]
Chú ý: Kiểm tra các nhà khai thác mới -NotIn
và -In
ví dụ:
C:\PS> 1 -In 1..5
C:\PS> 10 -NotIn 1..5
Vì vậy, cú pháp đơn giản là tốt đẹp đối với trường hợp "chung" nhưng xem ra như bạn có thể rơi vào những tảng đá sắc nhọn và dung nham khá dễ dàng ví dụ:
C:\PS> Get-ChildItem | Where LastWriteTime.Year -eq 2010
Điều này trả về không có gì và thậm chí tệ hơn, không có lỗi, vì vậy cú pháp này không hoạt động như bạn mong đợi. Nghĩa là, bạn không thể truy cập thuộc tính của thuộc tính. Ở trên, PowerShell tìm kiếm một thuộc tính được gọi là LastWriteTime.Year
không tồn tại. Cũng cần lưu ý rằng như một phần của cú pháp đơn giản, bây giờ bạn có thể sử dụng $PSItem
thay cho $_
trong trường hợp bạn hoặc người viết kịch bản có một số phản ứng dị ứng với $_
. :-)
Và trong khi điều này không nhất thiết phải gắn liền với cú pháp đơn giản tôi thấy rằng nó đơn giản hoá cuộc sống của tôi và tôi thích nó:
C:\PS> Get-ChildItem -Directory
C:\PS> Get-ChildItem -File
C:\PS> dir -ad
C:\PS> Get-ChildItem -Attributes System+Hidden+Directory+!Archive
+1 cho '$ PSItem'. BTW, làm thế nào để bạn biết về những điều này? Toàn bộ tài liệu có được viết không? – manojlds
Vâng, tôi không thích cú pháp đơn giản với vị trí, v.v ... rắc rối nhiều hơn tôi nghĩ. – manojlds
Tôi hơi lo lắng về cú pháp đơn giản. Tôi hiểu mong muốn giúp các quản trị viên dễ dàng truy cập vào PowerShell hơn nhưng tôi không chắc đây là điều gì khác hơn là 'mồi & chuyển đổi'. Thời gian sẽ cho tôi biết. Theo như tìm hiểu về những điều này, là một MVP có đặc quyền của nó. :-) Nghiêm túc, mặc dù sự tương tác giữa nhóm PowerShell và MVP của họ đã khá tốt kể từ khi họ bắt đầu trao MVPs trong PowerShell vào năm 2006. –
- 1. multiprocessing.value rõ ràng cú pháp?
- 2. Có cú pháp rõ ràng hơn cho WHERE id! = 1 AND id! = 2 AND id! = 7
- 3. Trợ giúp với việc tạo một subplot lớn trông đẹp hơn và rõ ràng hơn
- 4. Giải pháp cho vấn đề được thực hiện trong PL/SQL nó sẽ trông như thế nào trong SQL?
- 5. Clang: AST (cây cú pháp trừu tượng) trông như thế nào?
- 6. F # trận đấu rõ ràng vs cú pháp chức năng
- 7. Làm thế nào để làm cho nó rõ ràng rằng một phương pháp có thể ném một ngoại lệ?
- 8. Cú pháp xaml ngắn hơn cho Multibinding sử dụng StringFormat với nhiều ràng buộc là gì?
- 9. Notepad ++ ký pháp định lượng rõ ràng
- 10. Có văn bản rõ ràng khi bạn nhấp vào nó
- 11. Làm thế nào để làm cho nó ngắn hơn (Pythonic)?
- 12. Cú pháp của bí danh Ruby được cho phép như thế nào?
- 13. Tuyên bố macro này có hợp pháp C++ hay cái gì khác không? Và nếu nó là hợp pháp như thế nào cho nó hoạt động
- 14. Rõ ràng thấp hơn 16 bit
- 15. Làm thế nào để programmatically rõ ràng outputcache cho phương pháp hành động điều khiển
- 16. Làm thế nào để làm cho tìm kiếm vim bọc rõ ràng hơn?
- 17. Powershell Clear-History không rõ ràng Lịch sử
- 18. Android StackView trông như thế nào?
- 19. Cú pháp nào cho Smalltalks dựa trên tệp là có?
- 20. Ai đó có thể giải thích rõ ràng jQuery.when() và deferred.then() hoạt động như thế nào?
- 21. có thể rõ ràng jquery phương pháp `one`
- 22. E-Mail HTML trông như thế nào?
- 23. Tiêu đề zlib trông như thế nào?
- 24. Dịch vụ web của Node.js trông như thế nào?
- 25. Phân tích cú pháp xml bằng powershell
- 26. [cmdletbinding()] là gì và nó hoạt động như thế nào?
- 27. Bạn sẽ phân tích cú pháp Markdown như thế nào?
- 28. Làm cách nào để gọi phương thức giao diện được triển khai rõ ràng từ PowerShell?
- 29. ràng buộc python, nó hoạt động như thế nào?
- 30. Cú pháp `new Class [] {}` hoạt động như thế nào?
gì một phần của điều này là không hữu ích không? Có vẻ như bạn có thể tải xuống. http://social.technet.microsoft.com/Forums/en-AU/ITCG/thread/4807949e-58e6-4533-b35d-580d938dfbb2 –