批处理文件删除列表中不包含的文件夹

时间:2015-02-04 21:42:32

标签: windows batch-file cmd

我有一组文件夹,我想保留,并希望删除其余的。我有一个.txt文件,其中包含我要保留的文件夹的名称。

所以这就是我所拥有的:

C:\test我有以下文件夹:

AAA
BBB
CCC
DDD
EEE

在我的文本文件exclude.txt中,我列出了以下文件夹名称:

AAA
BBB
CCC

因此,我希望我的最终产品是C:\test只应在批处理文件后面包含文件夹AAABBBCCC

这是我到目前为止所没有的运气:

for /d %%a in ("C:\test\*") do findstr /i /x /c:"%%~nxa" exclude.txt || rd /s /q %%a

2 个答案:

答案 0 :(得分:1)

看起来你非常接近。以下内容适用于我...(只是在您的目录名称中添加了一个' \'字符)

for /d %%a in ("C:\test\*") do findstr /i /x /c:"%%~nxa" exclude.txt || rd /s /q %%a

答案 1 :(得分:0)

我和上面那个人遇到了同样的问题,它只适用于排除文件中的第一行。

过了一会儿,我意识到我的排除列表中的最后一行实际上并没有起作用,但是因为我只用 2 行对其进行了测试,所以我无法区分。

当我将真实数据与 84 个排除项一起放入时,我意识到发生了什么,我的解决方法是在文件末尾放置一个虚拟排除项,知道它无论如何都会被忽略