2015-09-21 67 views
1

有人可以解釋我這個語法嗎?我認爲它沒有用,所以如果你能幫我找到另一種語法。澄清使用的語法

$fichesAEnvoyer = @($fiches | where {($_.TypeFiche -eq '2') -and (($_.Causes -eq '') -or ($_.Causes -eq $null) -or ($_.Causes.Count -eq 0) -or ($_.ActionCorrective -eq '') -or ($_.ActionCorrective -eq $null) -or ($_.DateActionCorrective -eq '') -or ($_.DateActionCorrective -eq $null) -or ($_.ActionPreventive -eq '') -or ($_.ActionPreventive -eq $null) -or ($_.DateActionPreventive -eq '') -or ($_.DateActionPreventive -eq $null))}) 

我不明白爲什麼有$_,而不是$fiches

+1

https://technet.microsoft.com/en-us/library /dd347728.aspx –

+0

'$ _'表示管道中的當前對象。如果這不是你的問題,那麼我們需要的不僅僅是_我認爲它不工作。它工作與否。你期望會發生什麼?什麼是'$ fiches'。那裏的情況相當複雜。分別打破它們,看看發生了什麼。沒有樣本數據我們不能幫助。 – Matt

+0

https://technet.microsoft.com/zh-cn/library/hh847768.aspx –

回答

0

$ _是一個變量,其中 cmdlet可在代表在管道中的當前對象。例如,如果你這樣做:

1,2,3 | where {$_ -ge 2} | Write-Host 

然後$ _將被設置爲1,然後2,然後3