使用带有Remove-Item的Get-ChildItem返回删除的项目数

时间:2017-01-17 21:24:27

标签: powershell

我使用以下命令按预期成功删除文件;但是,我想知道删除的项目。

Get-ChildItem $dPath -Filter "*.blah" | Remove-Item 

我试过这个。它总是删除文件但是在删除后运行Measure-Object,因此总是返回0作为计数

Get-ChildItem -Path C:\Temp -Filter "*.blah" | Remove-Item | Measure-Object

然后我反过来尝试了它,但总是得到:

  

[Remove-Item],ItemNotFoundException

Get-ChildItem -Path C:\Temp -Filter "*.blah" | Measure-Object | Remove-Item

2 个答案:

答案 0 :(得分:4)

收集变量中的项目,获取该列表的计数,然后删除项目:

$items = Get-ChildItem -Path C:\Temp -Filter "*.blah"
$cnt   = $items.Count
$items | Remove-Item

或计算已成功删除的项目:

$cnt = 0
Get-ChildItem -Path C:\Temp -Filter "*.blah" | ForEach-Object {
  Remove-Item $_.FullName
  if ($?) { $cnt++ }
}

答案 1 :(得分:1)

删除后,您可以将FileInfo返回的Get-ChildItem写入输出管道:

Get-ChildItem -Path $path | 
   ForEach-Object { Remove-Item $_; Write-Output $_} | 
   Measure-Object