如何删除相对于放置批处理文件的文件夹的文件夹列表?
我的意思是脚本应遍历所有子目录(来自当前目录)并仅删除定义列表中的文件夹。
实际问题是:定义文件夹列表的最佳方法是什么,以便在脚本中编辑列表很容易?
这是文件夹的示例结构:
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\
我需要创建一个易于编辑的脚本,因为文件夹列表可能很长并且可能经常更改。是否可以在脚本开头定义文件夹列表?
然后脚本会在循环中删除文件夹。
此外,列表中的某些文件夹可能不存在 - 因此不应破坏脚本。脚本应删除所有存在的文件夹。
此外,脚本完成工作后是否可以关闭控制台窗口?
答案 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中无效,我不确定它什么时候被删除。