dir | duplicates | del
唯一的问题是,通常,管道中的任何给定命令一次只能处理一个对象,这对检测重复项没有任何帮助。 (当然,一组中没有重复,对吗?)
我是否有一个技巧可以让链中的第二个命令在完成工作之前从第一个命令中收集所有输出并将事情传递给第三个命令?
答案 0 :(得分:2)
您可以一次处理单个文件,只需将收到的每个文件存储在Process
块中,然后处理End
块中的所有文件。这就是Group& amp;排序工作。在获得所有输入之前,他们无法进行分组或排序。一旦他们获得了所有输入,他们就会进行操作,然后再按照分组/排序顺序将结果再次按流程传输到管道中。
答案 1 :(得分:1)
所以当我洗澡的时候,我实际上想出了答案,然后回来发现Keith已经提供了它。无论如何,这是一个例子。
begin
{
Add-Type -Path ($env:USERPROFILE + '\bin\CollectionHelper.cs');
[string[]] $files = @()
}
process
{
$files += $FullName
}
end
{
[JMA.CollectionHelper]::Duplicates($files)
}