2016-10-06 7 views
3

に意味私は今日、この遭遇しました:は何ん|%PowerShellの

$tests = (Get-ChildItem . -Recurse -Name bin |% { Get-ChildItem $_ -Recurse -Filter *.Unit.Tests.dll } |% { $($_.FullName) }) 
Write-Host ------------- TESTS ----------- 
Write-Host $tests 
Write-Host ------------------------------- 
.\tools\xunit\xunit.console.exe $tests -xml test-report.unit.xml 

私は何のまわりで私の頭を取得することはできません「|%」はそこに行っています。誰もそれが何のために使用された説明することができますか?

感謝

+0

これはForeach-Objectのエイリアスです。 'get-alias -definition foreach-object' – whatever

答えて

4

%the ForEach-Object cmdletためaliasです。

エイリアスは、コマンドレットまたは関数を参照できる別の名前です。たとえば、dir,lsおよびgciは、すべてGet-ChildItemのエイリアスです。

ForEach-Objectあなたは、個々の項目に対していくつかのコードを実行することができますので、ForEach-Objectに1つのコマンドレットの結果をパイプ、パイプラインを介して渡された各項目の[ScriptBlock]を実行します。 Get-ChildItemは、特定のディレクトリツリーにbin秒のすべてを見つけ、その後、発見され、それぞれにされ、あなたの例では

は、Get-ChildItemは、その試合*.Unit.Tests.dllの下のすべてのファイルを検索するために使用され、その後、それぞれの場合、フルネームがパイプラインに返されます(これは$tests変数に割り当てられています)。

+0

回答@briantistに感謝します。非常に明確かつ簡潔です。 – miticoluis

関連する問題