我找了一个代码块我使用(从采购的另一个问题),我一直没能找出什么.在.{process表示这个片段(评论删除):
Get-ItemProperty $path |
.{process{ if ($_.DisplayName -and $_.UninstallString) { $_ } }} |
Select-Object DisplayName, Publisher, InstallDate, DisplayVersion, HelpLink, UninstallString |
Sort-Object DisplayName
Run Code Online (Sandbox Code Playgroud)
我知道,%是For-EachObject和?是简写形式,Where或Where-Object,但接下来的问题是:
什么是.速记?
.是点源操作符,它在当前作用域中运行脚本而不是像调用操作符(即&)那样的新作用域.
第二个段调用脚本块,并在该脚本块中定义高级功能.高级函数迭代管道中的每个项目并选择性地传递它.
这不是一个惯用的用法.这个脚本试图实现的目标可以通过使用Where-Object(通常缩写为where或?)来以更简单,更易读的方式完成:
Get-ItemProperty $path | where { $_.DisplayName -and $_.UninstallString }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
764 次 |
| 最近记录: |