繁体   English   中英

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

[英]Windows 7 empty entire directory from command line

我正在运行批处理文件,该文件将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

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

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

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

几点说明。
从命令行运行时,只使用一个%。 双打用于批处理文件。
&&用于在同一行上运行多个命令。
*在这种情况下,&&是特别重要的,因为你不需要del / q 如果cd失败则运行,因为你将删除你开始的目录的内容。

尝试这个:

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

用文件夹名称或驱动器号替换“folder”

例如:forfiles / pf:/ s / c“cmd / c rd / q @path

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM