[英]Delete folders from child directories in a batch file
如何删除与放置批处理文件的文件夹相关的文件夹列表?
我的意思是脚本应该遍历所有子目录(从当前目录)并只删除定义列表中的文件夹。
实际问题是:定义文件夹列表以便在脚本中轻松编辑列表的最佳方法是什么?
以下是文件夹的示例结构:
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\
我需要创建一个易于编辑的脚本,因为文件夹列表可能很长并且可能经常更改。 是否可以在脚本开头定义文件夹列表?
因此,脚本将循环删除文件夹。
此外,列表中的某些文件夹可能不存在 - 因此这不应破坏脚本。 脚本应该删除所有存在的文件夹。
另外,脚本完成工作后是否可以关闭控制台窗口?
我们假设您的list.txt仅包含要删除的文件夹的路径
你可以这样做:
@echo off
FOR /f "delims=" %%A IN ('Type list.txt') Do Echo RMDIR /S /Q "%%A"
pause
所以之前用Echo检查它,如果你发现它成功了; 你应该压制它!
我实际上有同样的需求,但我通过创建一个专用的可执行文件来解决它,该可执行文件采用文件/文件夹路径列表并删除它们。
刚刚将我的小工具添加到 GitHub: rmList
将要删除的文件/文件夹列出到带有dir
的文件中,并在该文件上调用我的程序。
以下命令将生成一个仅包含文件夹名称的纯文本文件(更改 C:\\ 以适合您的路径)。
目录 C:\\ /A:D /b > folders.txt
folders.txt 文件将位于您当前的文件夹中,并且可以轻松编辑。 /b 开关告诉 DIR 只包含裸信息。
DELTREE 在 Windows 7 中无效,我不确定它何时被删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.