从批处理文件

时间:2016-02-17 11:27:29

标签: windows batch-file cmd

如何删除相对于放置批处理文件的文件夹的文件夹列表

我的意思是脚本应遍历所有子目录(来自当前目录)并仅删除定义列表中的文件夹。

实际问题是:定义文件夹列表的最佳方法是什么,以便在脚本中编辑列表很容易?

示例结构

这是文件夹的示例结构:

d:\root\my.bat
d:\root\do_not_remove\
d:\root\delete_this_folder\
d:\root\path\to\folder_to_delete\
d:\root\path\to\another\folder_to_remove\

my.bat应仅删除子目录中的文件夹。因此,在这种情况下,只有d:\root\的文件夹。

在此示例中,需要删除以下文件夹(当然还包括其中的所有文件):

delete_this_folder\
path\to\folder_to_delete\
path\to\another\folder_to_remove\

文件夹列表

我需要创建一个易于编辑的脚本,因为文件夹列表可能很长并且可能经常更改。是否可以在脚本开头定义文件夹列表?

然后脚本会在循环中删除文件夹。

此外,列表中的某些文件夹可能不存在 - 因此不应破坏脚本。脚本应删除所有存在的文件夹。

关闭控制台

此外,脚本完成工作后是否可以关闭控制台窗口?

3 个答案:

答案 0 :(得分:2)

我们假设 list.txt 仅包含要删除的文件夹的路径

你可以这样做:

@echo off
FOR /f "delims=" %%A IN ('Type list.txt') Do Echo RMDIR /S /Q "%%A"
pause

所以请先检查 Echo ,如果你发现它可以做到这一点;你应该压制它!

答案 1 :(得分:0)

我实际上也有同样的需求,但我通过创建一个专用的可执行文件来解决它,该可执行文件采用文件/文件夹路径列表并删除它们。

刚刚将我的小工具添加到 GitHub:rmList

将您要删除的文件/文件夹列出到带有 dir 的文件中,并在该文件上调用我的程序。

答案 2 :(得分:-1)

以下命令将生成仅包含文件夹名称的纯文本文件(更改C:\以适合您的路径)。

Dir C:\ / A:D / b> folders.txt

folders.txt文件将位于您当前的文件夹中,可以轻松编辑。 / b开关告诉DIR仅包含裸信息。

DELTREE在Windows 7中无效,我不确定它什么时候被删除。