2012-07-12 73 views
1

powershell有一些合成特性,我無法找到很多文檔。今天我的問題是? {...}什麼是Powershell短語「|?{...}」是什麼意思?

例如

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

我明白管道是什麼意思。我很確定「$ _」用於引用某種循環中的當前項目。

有人可以解釋這是什麼意思?如果有人能指點我可以找到PowerShell保留符號的地方,那也是很棒的。

+0

的foreach是 「%」。 – Sung 2012-07-12 20:48:54

+1

'男人abou​​t_automatic_varables','男人abou​​t_reserved_words','男人abou​​t_operators'。 – 2012-07-12 22:07:12

回答

2
[^_^]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」的別名

+0

'gcm?'可能更直接一點,'get-command'是一種更一般的方式來確定命令是什麼(不依賴於存在的幫助)。 – Richard 2012-07-13 09:49:09

+0

謝謝。我瞭解了一些我不知道的別名。 – StaticMethod 2012-07-13 12:58:32

1

?只是where-object的別名。您可以使用get-alias命令獲取所有註冊的別名列表。

1

'?'是Where-Object cmdlet的別名。 Where-Object需要一個腳本塊(例如'{...}')並對其代碼進行評估。如果代碼計算結果爲$ true,則當前對象被寫入管道,並可用於鏈中的下一個命令,否則($ false)該對象將被丟棄。

如需更多幫助,請鍵入:

Get-Help Where-Object -Full