@echo off
setlocal enabledelayedexpansion
REM 设置目录路径和文件列表路径
set "target_dir=C:pathtoyourdirectory"
set "file_list=%target_dir%filelist.txt"
set "deleted_list=%target_dir%deleted_files.txt"
REM 清空或创建删除文件列表
echo Deleted files: > "%deleted_list%"
REM 遍历目标目录中的所有文件
for %%f in ("%target_dir%*.*") do (
set "file_found=0"
REM 检查文件是否在文件列表中
for /f "usebackq delims=" %%l in ("%file_list%") do (
if "%%~nxf"=="%%l" set "file_found=1"
)
REM 如果文件不在列表中,则删除并记录
if "!file_found!"=="0" (
echo Deleting: %%~nxf
echo %%~nxf >> "%deleted_list%"
del "%%f"
)
)
echo Done.
说明:
target_dir: 这是你想要清理的目录路径。file_list: 这是包含你想要保留的文件名的文本文件路径。
deleted_list: 这是记录被删除文件的文本文件路径。
步骤:
将上述代码保存为一个 .bat 文件,例如 cleanup.bat。修改 target_dir 变量为你要清理的目录路径。
确保 filelist.txt 文件存在于目标目录中,并且每行包含一个文件名。
运行 cleanup.bat。
注意事项:
该脚本会删除不在 filelist.txt 中的文件,并且会将这些被删除的文件名记录到 deleted_files.txt 中。请确保在执行脚本之前备份重要文件,以免误删。