You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell批量删除指定子文件夹,保留LastWriteTime最新的文件夹

解决指定格式子文件夹的批量删除问题

需求说明

处理目录下格式为TestFolder-sep-XXXXXX的子文件夹:

  • 按LastWriteTime降序排序
  • 保留最新的1个文件夹,删除其余所有

原代码问题分析

原代码存在两个核心问题:

  1. 使用-Name参数导致仅返回文件夹名称,而非完整路径,Remove-Item无法定位到目标文件夹,因此执行无效或报错
  2. 对-Recurse参数的误用:当前需求只需要处理目标目录下的直接子文件夹,无需递归遍历更深层级;若要删除文件夹及其内部内容,只需在Remove-Item后添加-Recurse,前提是传递正确的目标路径

正确实现代码

$loc = "C:\Temp"
$filter = "TestFolder-sep*"

# 获取目标文件夹对象,按LastWriteTime降序排序,跳过最新的1个,删除其余
Get-ChildItem -Path $loc -Filter $filter -Directory | 
    Sort-Object LastWriteTime -Descending | 
    Select-Object -Skip 1 | 
    Remove-Item -Recurse -Force

代码说明

  • -Directory:明确只获取文件夹,避免误处理文件
  • 不使用-Name:直接传递FileSystemInfo对象给Remove-Item,确保路径正确
  • -Recurse -Force:强制删除文件夹及其内部所有内容,无需额外确认

内容的提问来源于stack exchange,提问作者Keturah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 00:12:05