删除未在文本文件中列出的文件夹/文件

时间:2017-07-28 02:27:47

标签: batch-file

我需要一个批处理文件,用于从文本文件中读取路径列表。如果列表不包含Windows资源管理器中子文件夹/文件的路径,则会将其删除。

例如,在D:\test中包含:

 Hi              <Directory>
 Bye             <Directory>
 Hello.txt
 cya.txt
 checkList.txt

所以在my checkList.txt :(这是包含不应删除的文件夹/文件的列表)

D:\test\Hi
D:\test\Hello.txt
D:\test\checkList.txt 

因此,在运行批处理文件后,Bye foldercya.txt将被删除。

1 个答案:

答案 0 :(得分:0)

这是代码。

@echo off
setlocal enableDelayedExpansion

for /f %%G in (checklist.txt) do set "str=%%~G !str!"
for /f %%G in ('dir /b /s ^| findstr /v /i "%str%"') do ECHO del "%%~G"
pause

循环浏览checklist.txt中的文件并删除不必要的文件。必要时删除ECHO

修改:我已将/s标记添加到dir命令,以显示findstr工作的完整路径。