2017-04-05 83 views
2

我正在運行以下PowerShell,我的問題是爲什麼第二個命令不返回任何結果?另外,我應該使用whereWhere-Object?見下面的截圖。爲什麼沒有「在哪裏」工作,因爲我期望在這裏選擇某些結果?

Write-Host "This displays all..." -ForegroundColor Green 
Get-Command -Module "Microsoft.TeamFoundation.PowerShell" 

Write-Host "This displays nothing..." -ForegroundColor Yellow 
Get-Command -Module "Microsoft.TeamFoundation.PowerShell" | Where-Object ($_.Name -like '*Tfs*') 

enter image description here

+4

你需要花括號:例如'Where-Object {$ _。Name-like'* Tfs *'}' – BenH

+0

D'OH!讓你的評論成爲答案,我會標記它。我已經嘗試過多次使用這種方法,現在只是推遲了解決真正的問題。爲什麼'哪裏對象'在'哪裏'? –

+1

@AlexKwitny因爲這是真名。 'Where'只是'Where-Object'的別名 - 沒有功能差異 –

回答

0

Where-Object要求要麼一個腳本塊或比較語句(3.0+)。

在你的情況,用花括號代替括號將工作:

Get-Command -Module "Microsoft.TeamFoundation.PowerShell" | 
    Where-Object {$_.Name -like '*Tfs*'} 

或者你可以使用一個比較語句:

Get-Command -Module "Microsoft.TeamFoundation.PowerShell" | 
    Where-Object -Property Name -like '*Tfs*'