删除前检查文件名(windows Batch)

时间:2013-01-02 07:57:12

标签: batch-file text-files delete-file

是否有办法使用Windows Batch读取文件名的txt文件列表。如果名称存在于列表中以保留该文件但是。如果在txt列表中找不到文件名,则删除它。

我试图过滤掉一大堆未经AutoCAD清理自动生成的临时文件。

读取txt列表的原因允许我添加或删除文件名以进行处理。

1 个答案:

答案 0 :(得分:2)

是的,Windows批处理是可行的。假设您有一个文件列表FilesToKeep.txt,文件名如下:

WillBeKept.txt
WillAlsoBeKept.doc

与以下批处理脚本位于同一目录中:

@echo OFF
pushd "%~dp0"
set "PathToCleanup=E:\Temp\Test"
for /F "tokens=*" %%F in ('dir /S/B/A-D %PathToCleanup%\*.*') do (
     findstr /S %%~nxF FilesToKeep.txt >NUL || del /Q "%%F" )

此脚本循环遍历PathToCleanup中的所有文件,如果FilesToCleanup.txt中没有文件名,则该文件将被删除。