Powershell 删除目录中的文件而不必等待整个列表

Powershell 删除目录中的文件而不必等待整个列表,powershell,Powershell,我有大量的文件要排序(5M+),我想删除所有超过N天的文件 是否有任何方法可以在确定整个文件集之前开始删除文件?可能相当于 System.IO.DirectoryInfo($folder).EnumerateFiles( ... ) 在C#?中,Get ChildItem已经执行了此操作。文件一经处理就会沿着管道传递。试试这个 $NDays = -5 dir *.* | where{$_.CreationTime -lt (Get-Date).AddDays($NDays)} | Remov

我有大量的文件要排序(5M+),我想删除所有超过N天的文件

是否有任何方法可以在确定整个文件集之前开始删除文件?可能相当于

System.IO.DirectoryInfo($folder).EnumerateFiles( ... ) 

在C#?

中,Get ChildItem已经执行了此操作。文件一经处理就会沿着管道传递。试试这个

$NDays = -5
dir *.* | where{$_.CreationTime -lt (Get-Date).AddDays($NDays)} | Remove-Item

我不认为GetChildItem有一个-files选项?否则看起来不错,谢谢。遗憾的是,我使用的是powershell 2.0——但看起来我可以在其中添加{$\.CreationTime-lt(Get Date).AddDays($NDays)-和!$\.PSIsContainer}来指定文件如果您没有任何必须排除的子目录,您可以一起跳过类型检查。但是如果你这样做了,那么我认为最有效的方法就是使用过滤器
dir***|……
将-Filter参数传递给PSProvider,因此不匹配的参数从一开始就不会传递给PowerShell引擎。