bat批处理,要求根据文件列表里面的文件名称,删除目录里不在文件列表里的文件,并生成一个删除的文件列表

bat批处理,要求根据文件列表里面的文件名称,删除目录里不在文件列表里的文件,并生成一个删除的文件列表

浏览次数:
作者: 墨鱼
信息来源: 本站原创
更新日期: 2025-03-03 10:53:43
文章简介

使用BAT批处理脚本,可根据文件列表清理目录中多余文件,并生成删除文件记录。步骤:1.创建包含需保留文件名的列表文件。2.编写BAT脚本,遍历目录文件,对比列表,删除不在列表中的文件,并记录删除的文件名至新列表。3.运行脚本,完成清理及记录。此教程旨在简化文件管理,确保目录仅含必需文件,同时提供删除文件清单以备查。

  • 正文开始
  • 相关阅读
  • 推荐作品

你可以使用以下的批处理脚本来实现这个功能。假设你有一个文件列表 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.

说明:

  1. target_dir: 这是你想要清理的目录路径。

  2. file_list: 这是包含你想要保留的文件名的文本文件路径。

  3. deleted_list: 这是记录被删除文件的文本文件路径。

步骤:

  1. 将上述代码保存为一个 .bat 文件,例如 cleanup.bat。

  2. 修改 target_dir 变量为你要清理的目录路径。

  3. 确保 filelist.txt 文件存在于目标目录中,并且每行包含一个文件名。

  4. 运行 cleanup.bat。

注意事项:

  • 该脚本会删除不在 filelist.txt 中的文件,并且会将这些被删除的文件名记录到 deleted_files.txt 中。

  • 请确保在执行脚本之前备份重要文件,以免误删。

希望这个脚本能满足你的需求!

帝国CMS增加百度时间因子功能 这个功能对网站真的有效果么?
« 上一篇 2024年05月14日
家用电脑或笔记本安装WINDOWS SERVER版本,出现未知设备(叹号)的解决办法
下一篇 » 2025年03月12日

如本文对您有帮助,就请墨鱼抽根烟吧!