你可以使用以下的批处理脚本来实现这个功能。假设你有一个文件列表 filelist.txt,里面包含了你想要保留的文件名(每行一个文件名),并且你想要删除目录中不在这个列表中的文件,同时生成一个删除的文件列表 deleted_files.txt。
@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 中。
请确保在执行脚本之前备份重要文件,以免误删。
希望这个脚本能满足你的需求!
本文地址:https://www.moyublog.com/notes/1249.html
加入我们:微信:搜索“Moyu-Blog” 帝国CMS模板客户群:QQ二群---909235407 QQ一群(已满)---106997031
版权声明:本文采用[BY-NC-SA]协议进行授权,如无特别说明,转载请注明本文地址!