我有一个运行以下命令的脚本:
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