powershell - 删除目录中每个子文件夹中的前 5 项

标签 powershell

我有一个大帧序列,每个剪辑分为 245 帧,每个片段的前 5 帧需要删除。我已经有一个 powershell 脚本,可以将所有这些内容分类到 245 个文件夹中。我所需要做的就是在每个文件夹中删除前五帧。或者,我可以在将它们分类到文件夹之前删除 5 个、跳过 240 个、删除 5 个等等,但我也无法弄清楚。我可以使用什么脚本来执行此操作?

最佳答案

使用Get-ChildItem获取要迭代的文件夹,根据需要对它们进行排序(默认排序按文件名升序排列),使用Select选择要删除的项目,并使用 Remove-Item 删除:

Foreach ($subfolder in (Get-ChildItem 'c:\path\to\clips\' -Directory)) {
  Get-ChildItem $subfolder -File | 
    # Sort -Property Name -Descending | ## Optionally sort by name/date/whatever needed.
    Select -First 5 |
    Remove-Item -WhatIf
}

我建议在删除文件之前使用 -WhatIf 运行来验证您是否获得了正确的文件。

关于powershell - 删除目录中每个子文件夹中的前 5 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68939658/

相关文章:

winforms - 在 PowerShell 中过滤 TreeView 节点

powershell - gwmi 和 Get-WmiObject 有什么关系

regex - Powershell 替换多行

powershell - 如何使用Powershell转换文件内容

powershell - 从文件夹中选择最新文件,然后使用Powershell脚本将其复制到另一个文件

powershell - Powershell 和 Try-Catch 以及外部 EXE 的输出重定向/捕获问题

powershell - 使用带有变量而不是文件的mofcomp.exe

Powershell:在变量末尾附加百分号

arrays - 在 Powershell 中查找对象数组中的匹配项

Powershell Copy-Item 不复制