[英]What is the `.` shorthand for in a PowerShell pipeline?
我正在查看我使用過的代碼塊(來自另一個問題 ),但我一直無法弄清楚該代碼是什么.
在.{process
代表此代碼段中(注釋已刪除):
Get-ItemProperty $path |
.{process{ if ($_.DisplayName -and $_.UninstallString) { $_ } }} |
Select-Object DisplayName, Publisher, InstallDate, DisplayVersion, HelpLink, UninstallString |
Sort-Object DisplayName
我知道%
是For-EachObject
和?
是Where
或Where-Object
簡寫,但問題仍然存在:
什么是.
速記?
.
是點源運算符 ,它在當前作用域而不是像調用操作符(即&
)這樣的新作用域中運行腳本。
第二段調用腳本塊,並在該腳本塊中定義高級功能。 高級功能迭代管道中的每個項目並有選擇地傳遞它。
這並不是真正的習慣用法。 通過使用Where-Object
(通常縮寫為where
或?
),可以以一種更簡單,更易讀的方式來完成此腳本想要實現Where-Object
:
Get-ItemProperty $path | where { $_.DisplayName -and $_.UninstallString }
.
是點源運算符。 我從未見過使用這種方式,但是在這種情況下,它等同於使用&
(調用運算符)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.