簡體   English   中英

PowerShell管道中的`.`縮寫是什么?

[英]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? WhereWhere-Object簡寫,但問題仍然存在:

什么是. 速記?

. 點源運算符 ,它在當前作用域而不是像調用操作符(即& )這樣的新作用域中運行腳本。

第二段調用腳本塊,並在該腳本塊中定義高級功能。 高級功能迭代管道中的每個項目並有選擇地傳遞它。

這並不是真正的習慣用法。 通過使用Where-Object (通常縮寫為where? ),可以以一種更簡單,更易讀的方式來完成此腳本想要實現Where-Object

Get-ItemProperty $path | where { $_.DisplayName -and $_.UninstallString }

. 是點源運算符。 我從未見過使用這種方式,但是在這種情況下,它等同於使用& (調用運算符)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM