递归删除目录

时间:2013-04-09 09:03:01

标签: batch-file directory subdirectory shared-directory delete-directory

我正在执行一个Batch-File,它会删除服务器上特定文件夹中的所有内容。 它到目前为止工作,但遗憾的是,文件夹名称中包含空格的目录将无法识别。 我不知道在脚本中放置引号来克服这个限制。

到目前为止,这是脚本,它位于“D:\”的根目录中:

cd Sharedfolder
for /f %%i in ('dir D:\Sharedfolder /B /D') do rd %%i /Q /S
del /F /S /Q *.*

它运行良好,但只要我在“Sharedfolder”中有一个目录,它就不适用于该目录。

2 个答案:

答案 0 :(得分:5)

命令使用不匹配。使用 for / f 或使用

FOR /D %%i IN (D:\Sharedfolder\*) DO rd /s /q "%%i"
del /F /S /Q *.*

哪个更接近你的想法。另一种解决方案是:

rmdir /s /q D:\Sharedfolder
mkdir D:\Sharedfolder

这可能会在系统的其他地方出现一些问题。

答案 1 :(得分:1)

这是您正在寻找的完整答案,试试这个:

for /f "delims=" %%x in ('dir /b /ad abc*') do rd /s /q "%%x"

我试过,它有效。