Windows 7从命令行清空整个目录

时间:2011-05-05 15:47:29

标签: windows windows-7 command-line batch-file

我正在运行批处理文件,该文件将war文件部署到特定目录。但是,我希望在递归部署之前清空该目录。

我发现这个脚本应该删除目录中的所有内容,包括文件夹和文件,但是我收到了这个错误:“%%我此时出乎意料。”

FOR /D %%i IN ("C:/Program Files (x86)/Apache Software Foundation/Tomcat 6.0/abtapps/ROOT/*") DO RD /S /Q "%%i" DEL /Q "C:/Program Files (x86)/Apache Software Foundation/Tomcat 6.0/abtapps/ROOT/*.*"

我只需要一种简单的方法来通过修复上面的脚本或使用其他方法来递归清空我的ROOT目录。必须能够从批处理文件中执行此操作。

我正在运行Windows 7。

rmdir ROOT /s /q
mkdir ROOT

3 个答案:

答案 0 :(得分:9)

你应该使用rmdir / S.看看这个link

答案 1 :(得分:4)

我认为你要找的是清除文件夹而不删除它并重新创建它。这将实际清除文件夹,因此您无需重新创建它。

CD "C:/Program Files (x86)/Apache Software Foundation/Tomcat 6.0/abtapps/ROOT" && FOR /D %i IN ("*") DO RD /S /Q "%i" && DEL /Q *.*  

一些注释。
从命令行运行时,只使用一个%。双打用于批处理文件 &安培;&安培;用于在同一行上运行多个命令 *在这种情况下,&&'s特别重要,因为你不希望del / q 在cd失败的情况下运行,因为你将删除你开始的目录的内容

答案 2 :(得分:2)

试试这个:

forfiles / p“folder”/ s / c“cmd / c rd / q @path

将“folder”替换为您的文件夹名称或驱动器号

示例:forfiles / p f:/ s / c“cmd / c rd / q @path

这将递归所有子文件夹,并仅删除空文件夹。 如果在命令行中使用它,则会收到非空文件夹的错误消息。如果将其放在批处理脚本中,则需要一些时间才能运行,具体取决于您拥有的文件夹数量。