卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章1829本站已运行4109

bat批处理,删除目录里不在文件列表里的文件

你可以使用以下的批处理脚本来实现这个功能。假设你有一个文件列表 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 中。
请确保在执行脚本之前备份重要文件,以免误删。
卓越飞翔博客
上一篇: 利用PHP的GD库来自动识别图片颜色代码
下一篇: html在线WebP转JPG开源代码

相关推荐

留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏