什么?{}在PowerShell中意味着什么?

时间:2016-08-10 12:17:05

标签: powershell

?{ }块在PowerShell中意味着什么?

例如

[enum]::GetValues([io.fileoptions]) | ?{$_.value__ -band 0x90000000}

3 个答案:

答案 0 :(得分:9)

?Where-Object的别名。如果您必须对实际对象执行更复杂的操作,则使用大括号。你也可以写:

[enum]::GetValues([io.fileoptions]) | Where-Object { $_.value__ -band 0x90000000}

答案 1 :(得分:7)

怀疑地使用Get-Alias cmdlet

  

<强>描述

     

Get-Alias cmdlet在当前会话中获取别名(命令和可执行文件的备用名称)。这包括   内置别名,已设置或导入的别名以及别名   已添加到Windows PowerShell配置文件中。

     

默认情况下,Get-Alias采用别名并返回命令名称。使用Definition参数时,Get-Alias将使用命令名称   并返回其别名。

     

从Windows PowerShell 3.0开始,Get-Alias以“<alias> -> <definition>”格式显示非连字别名   让您更容易找到所需的信息。

PS D:\PShell> Get-Alias ?

CommandType     Name                                               ModuleName  
-----------     ----                                               ----------  
Alias           % -> ForEach-Object                                            
Alias           ? -> Where-Object                                              
Alias           h -> Get-History                                               
Alias           r -> Invoke-History                                            

答案 2 :(得分:4)

是Where-Object cmdlet的别名,但它还有另一个别名 - where。

在脚本块的情况下使用

{} 花括号,在这种情况下它是一个过滤脚本块,它主要用于复杂过滤,即多个critera,如下所示:

Get-Service | Where-Object -FilterScript {$_.Name -like '*audio*' -and $_.Status -eq 'Running'}