PowerShell短语“|?{...}”是什么意思?

时间:2012-07-12 20:44:44

标签: powershell

PowerShell有一些语法特性,我找不到很多文档。今天我的问题是? {...}

例如

PS> Get-SPServiceInstance | ? {$_.GetType.toString() -eq $varname}

我理解管道意味着什么。我很确定$_用于引用某种循环中的当前项。

有人可以解释这意味着什么吗?如果有人能指出我可以找到有关PowerShell保留符号的地方,那就太棒了。

3 个答案:

答案 0 :(得分:3)

[^_^]16:46:21[1]>get-help ?

Name                              Category  Synopsis
----                              --------  --------
%                                 Alias     ForEach-Object
?                                 Alias     Where-Object
h                                 Alias     Get-History
r                                 Alias     Invoke-History

“?”是“where-object”的别名

答案 1 :(得分:2)

'?'是Where-Object cmdlet的别名。 Where-Object获取一个scriptblock(例如'{...}')并评估其代码。如果代码的计算结果为$ true,则当前对象将写入管道,并且可用于链中的下一个命令,否则($ false)将丢弃该对象。

如需更多帮助,请输入:

Get-Help Where-Object -Full

答案 2 :(得分:1)

?只是where-object的别名。您可以使用get-alias命令获取所有已注册别名的列表。