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

PowerShell脚本开发:查找指定文件夹并删除其中特定扩展名文件

整合PowerShell脚本实现指定文件夹的文件清理

需求说明

需要找到所有名为Draft Materials的文件夹,在这些文件夹内删除PDF、BMP、AVI、MOV等导出产物文件,保留INDD、PRPROJ、AEP等源文件,用于归档磁盘空间清理。

整合后的完整脚本

# 定义可配置变量
$rootPath = "D:\"  # 要搜索的根驱动器/目录
$targetFolderName = "Draft Materials"  # 目标文件夹名称
# 要删除的文件扩展名(不带点,多个用逗号分隔)
$deleteExtensions = @("pdf", "bmp", "avi", "mov")
# 若需通过保留的扩展名反向筛选,可启用下面的$keepExtensions,同时注释上面的$deleteExtensions
# $keepExtensions = @("indd", "prproj", "aep")

# 查找所有目标文件夹
$targetFolders = Get-ChildItem -Path $rootPath -Filter $targetFolderName -Recurse -Directory -Force

# 遍历每个目标文件夹执行清理
foreach ($folder in $targetFolders) {
    Write-Host "正在清理文件夹:$($folder.FullName)" -ForegroundColor Cyan

    # 方式1:删除指定扩展名的文件
    Get-ChildItem -Path $folder.FullName -Include "*.$($deleteExtensions -join ",*.")" -Recurse -Force | ForEach-Object {
        Write-Host "删除文件:$($_.FullName)"
        Remove-Item -Path $_.FullName -Force
    }

    # 方式2:保留指定扩展名,删除其余文件(二选一)
    # Get-ChildItem -Path $folder.FullName -Exclude "*.$($keepExtensions -join ",*.")" -Recurse -Force -File | ForEach-Object {
    #     Write-Host "删除文件:$($_.FullName)"
    #     Remove-Item -Path $_.FullName -Force
    # }
}

Write-Host "清理操作完成" -ForegroundColor Green

关键步骤说明

  • 变量配置:将根路径、目标文件夹名、扩展名规则设为变量,方便后续快速调整参数。
  • 定位目标文件夹:通过Get-ChildItem的-Directory参数精准筛选文件夹,-Recurse实现全目录递归搜索,-Force包含隐藏文件夹。
  • 两种清理逻辑:
    1. 正向筛选:直接指定要删除的扩展名,用-Include匹配后删除;
    2. 反向筛选:指定需保留的扩展名,用-Exclude排除后删除剩余文件。
  • 操作日志:通过Write-Host输出实时操作路径,便于跟踪执行过程。

注意事项

  1. 测试阶段建议注释Remove-Item行,仅执行文件查找和日志输出,确认目标文件无误后再执行删除。
  2. -Force参数会删除只读文件,使用前需确认这些文件确实无需保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 11:40:23