命令行 del c:\mydir\*.* - 同时删除子文件夹

命令行 del c:\mydir\*.* - 同时删除子文件夹

我有一个运行以下命令的脚本:

del c:\mydir\*.*

是否有一个命令行开关可以用来删除该目录中的所有子文件夹?谢谢!

答案1

如果 C:\mydir 目录中有文件,则需要执行这两行。否则,第一行将执行您想要的操作:

FOR /D %i IN (C:\mydir\*) DO RD /S /Q "%i"
DEL /Q C:\mydir\*.* 

这将保留 C:\mydir 目录。

编辑:David1235 说得很对。如果你想在批处理文件中执行此操作,则需要将“FOR ...”行中的“%”加倍。

不过,我不太清楚为什么 David1235 的脚本需要“pushd”和“popd”,而您可以在“FOR ...”和“DEL ...”行中指定路径。

答案2

如果你想从任何地方运行脚本,请尝试

@echo 关闭
pushd“C:\mydir”
对于 (*.*) 中的 /d %% d,请执行 rmdir /s /q "%% d"
删除/q *.*
弹出

在批处理脚本中,您需要双百分号。来自“help for”:

要在批处理程序中使用 FOR 命令,请指定 %%variable
%variable。变量名区分大小写,因此 %i 不同
来自 %I。

答案3

有没有理由:

DEL /Q /S C:\mydir\*

不起作用?

答案4

是的,rmdir。

(提示:rmdir /?)

编辑:您可能想保留该文件夹。在批处理文件中尝试一下:

@echo off
rmdir C:\mydir /S
mkdir C:\mydir

相关内容