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

如何删除指定目录树内除保留列表标注外的全部文件及文件夹?

实现方案

PowerShell 方案(推荐,处理多层嵌套路径更稳定)

操作步骤

  1. 新建一个文本文件命名为keep_list.txt,将你需要保留的所有文件的完整绝对路径写入该文件,每行一个路径,示例:
G:\AD\mods\folder1\doc1.txt
G:\AD\mods\folder1\subfolder1\doc1.txt
G:\AD\mods\folder2\doc1.txt
  1. 新建.ps1后缀的PowerShell脚本,写入以下代码:
# 定义待处理的根目录
$rootPath = "G:\AD\mods"
# 定义保留列表文件路径
$keepListPath = "G:\path\to\keep_list.txt"

# 读取保留列表,统一转换为绝对路径并存入去重集合
$keepFiles = Get-Content $keepListPath | ForEach-Object { [System.IO.Path]::GetFullPath($_.Trim()) } | Where-Object { $_ } | ToHashSet()

# 先删除所有不在保留列表中的文件
Get-ChildItem $rootPath -File -Recurse | ForEach-Object {
    if (-not $keepFiles.Contains($_.FullName)) {
        Remove-Item $_.FullName -Force
        # 测试阶段可以注释上面的删除命令,打开下面的输出命令验证要删除的文件是否正确
        # Write-Host "待删除文件:$($_.FullName)"
    }
}

# 再删除根目录下所有空文件夹
do {
    $emptyDirs = Get-ChildItem $rootPath -Directory -Recurse | Where-Object { $_.GetFileSystemInfos().Count -eq 0 }
    if ($emptyDirs) {
        $emptyDirs | Remove-Item -Force
    }
} while ($emptyDirs)
  1. 测试阶段建议先注释删除命令,运行脚本确认待删除的文件符合预期后,再打开删除命令执行。

批处理方案

操作步骤

  1. 同样准备keep_list.txt,每行放一个要保留的文件的完整绝对路径。
  2. 新建.bat后缀的批处理文件,写入以下代码:
@echo off
setlocal enabledelayedexpansion

:: 定义待处理的根目录
set "rootPath=G:\AD\mods"
:: 定义保留列表文件路径
set "keepListPath=G:\path\to\keep_list.txt"

:: 先把保留列表路径全部存入临时变量
for /f "usebackq delims=" %%a in ("%keepListPath%") do (
    set "p=%%~fa"
    set "keep_!p:\=/!"=1
)

:: 遍历所有文件,不在保留列表的删除
for /r "%rootPath%" %%f in (*) do (
    set "cur=%%~ff"
    if not defined keep_!cur:\=/! (
        del /f /q "%%f"
        :: 测试阶段可以注释上面的删除命令,打开下面的输出验证
        :: echo 待删除文件:%%f
    )
)

:: 递归删除空文件夹
for /f "delims=" %%d in ('dir /ad /b /s "%rootPath%" ^| sort /r') do (
    rd "%%d" 2>nul
)
endlocal

注意事项

  • 操作前务必提前备份G:\AD\mods目录下的所有数据,避免误删造成损失
  • 首次运行请先注释删除代码,确认待删除的文件/文件夹符合预期后再执行实际删除操作

内容的提问来源于stack exchange,提问作者Jens Petter Røyseth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:03:00