2

我正在执行一个批处理文件,它将删除服务器上特定文件夹中的所有内容。 它到目前为止工作,但不幸的是不能识别具有文件夹名称中的空格的目录。 我不知道在脚本的哪里放置引号来克服这个限制。递归地删除目录

这是脚本到目前为止,它位于根“d:\”:

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

它的工作好,但只要我有内部的目录“Sharedfolder”它不会为那个目录工作。

回答

2

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

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

我都试过了,它的工作原理。

+0

不,不幸的是没有工作。 它试图删除“D:\ Sharedfolder \ D:\ Sharedfolder”及其子目录。 另外,我必须在/ S/Q之前放置“%% I”,以使其完成任何操作。 – 2013-04-09 09:58:46

+0

我编辑了答案,并检查了解决方案。它的工作很好。祝一切顺利。 – 2013-04-09 13:57:00

4

命令使用中存在不匹配。要么使用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 

这样做可能会在系统其他地方遇到一些问题。