在大多数现代系统中,系统会自动创建不必要的额外文件。如何创建一个使用核对表删除任何不在其上的文件的.bat文件?
这对于在我创建的自定义文件中删除自动生成的备份文件,绘制日志,错误日志等非常有用。
答案 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
进行测试,以确保它不会删除重要的内容。