我今天遇到过这个:
$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
Run Code Online (Sandbox Code Playgroud)
我无法理解'|%'在那里做什么.有谁可以解释它用于什么?
非常感谢
别名只是您可以引用cmdlet或函数的另一个名称.例如dir,ls和gci,都是别名Get-ChildItem.
ForEach-Object对通过管道传递给它的[ScriptBlock] 每个项执行a ,因此将一个cmdlet的结果通过管道传输,ForEach-Object可以针对每个单独的项运行一些代码.
在你的榜样,Get-ChildItem是找到所有的binS IN某个目录树,然后为每一个被发现,Get-ChildItem被用来查找所有匹配下的文件*.Unit.Tests.dll,然后为那些中的每一个,全名是返回到管道(将被分配给$tests变量).
| 归档时间: |
|
| 查看次数: |
8912 次 |
| 最近记录: |