CMD:如何删除所有目录(在当前目录中)的所有内容而不删除目录本身?

CMD:如何删除所有目录(在当前目录中)的所有内容而不删除目录本身?

例如:

我在目录中:

数据目录

在这个目录中,我有四个目录:

F:\数据>目录
22179 22915 23459 23460

这些目录包含各种内容,包括目录和文件。我尝试运行类似以下操作:

rmdir /s *\*

我删除了这些编号目录中的所有内容,同时保留空目录。有没有一行代码可以做到这一点,还是我必须循环遍历子目录?

答案1

(for /d %A in (*) do @for /d %B in ("%A\*") do @rd /s /q "%~B")&del /s /q *.* >nul

它只有一行代码 - 但我认为它并不简单。它循环遍历树的前两层,但更深的层将被删除,而无需更多循环。如果在批处理文件中,则 %A 和 %B 变为 %%A 和 %%B

我不确定您是否想从根目录(在您的例子中是 F:\data)删除所有文件。上述操作将删除根目录中的文件。

如果你想保留根目录中的文件,那么我认为这应该可行(我没有测试过这个)

for /d %A in (*) do @(@for /d %B in ("%A\*") do @rd /s /q "%~B")&@del /q "%A\*.* >nul

可以从这两组代码中删除 @ 符号 - 它们只是为了防止命令的每个级别被回显。

答案2

试试这个我认为这会有所帮助......

RD /s /q(然后是要删除的文件夹的路径)

它将删除文件夹本身的所有内容

答案3

DEL /S /Q *.*对你有用吗?

相关内容