用于删除所选文件的批处理文件

时间:2011-04-21 14:19:35

标签: batch-file delete-file

在大多数现代系统中,系统会自动创建不必要的额外文件。如何创建一个使用核对表删除任何不在其上的文件的.bat文件?

这对于在我创建的自定义文件中删除自动生成的备份文件,绘制日志,错误日志等非常有用。

2 个答案:

答案 0 :(得分:2)

试试这个,确保将SEARCHDIR设置为真实目录,并使用您要保留的文件填充keep.txt,每行1个文件,使用包括目录在内的完整路径。如果您不想使用目录,请调整DIR /S /B命令,使其输出的格式与keep.txt中的格式相同

@echo off
setlocal enabledelayedexpansion
set KEEPFILES=keep.txt
set SEARCHDIR=.\test_folder
SET /a KEEPTHISFILE=2

FOR /f "tokens=*" %%A IN ( 'DIR /S /B %SEARCHDIR%\*' ) DO (
SET /a KEEPTHISFILE=0
for /f "tokens=1,* delims=¶" %%B in ( '"type %KEEPFILES%"') do (
    if "%%A"=="%%B" SET /a KEEPTHISFILE=1       
)
if "!KEEPTHISFILE!"=="0" (
    echo "deleting %%A"
    del /f %%A  
)
)

答案 1 :(得分:0)

创建一个名为'deletestuff.bat'的文件(或任何你希望它被调用的文件,只要它是.bat)。接下来,填写:

rm *.tmp
rm *.blah

.tmp.blah是您要删除的文件的扩展名(例如,它们可能是.log)。首先将文件样本复制到新文件夹并在那里运行新的.bat进行测试,以确保它不会删除重要的内容。