繁体   English   中英

从批处理文件中的子目录中删除文件夹

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM