首页 > 解决方案 > PowerShell:如何使用remove-item批量删除文件?

问题描述

我有一个小脚本,它从 date1 小于 date2 的目录中删除文件。但是,我的脚本正在运行,因为它在包含许多文件的目录上运行,我希望删除项一次只删除 100 个文件,以便我可以监控每次运行的进度。这可能吗?

 if ($date1 -lt $date2) 
                { 
                    $_ | Remove-Item;
               }

标签: powershellif-statementrm

解决方案


使用for循环并在每次迭代中使计数器步长为 100:

if($date1 -ge $date2){
  # nothing to be done
  return
}

$files = Get-ChildItem $pathToFolder

for($i = 0; $i -lt $files.Count; $i += 100){
    $null = Read-Host "Press Enter to delete the next 100 files... "
    $filesToDelete = $files[$i..($i+99)] 
    $filesToDelete |Remove-Item
    Write-Host "Deleted $($filesToDelete.Count) files..."
}

推荐阅读