首页 > 解决方案 > 根据命名约定删除所有目录

问题描述

我正在尝试使用 Windows 中的批处理文件根据命名约定删除所有目录。我不想删除所有目录,只删除与模式匹配的目录。

我在 Windows Server 上这样做,所以我不知道这是否重要。我可以让它在我的个人桌面上工作,但是当我在 Windows Server 计算机上尝试时它不起作用。

Echo Deleting Folders

cd C:\Users\srvFIPITSTOPPAPP1\AppData\Roaming\Enfocus\Switch Server\temp

pause

For /D /r %%i in ("*mail*") DO rd /Q /S %%i

pause

echo Done

当它运行时,它会遍历所有目录并列出它们。但是在列出所有内容之后,它会说以下内容:

“该系统找不到指定的文件。”

“该系统找不到指定的路径。”

我觉得这很奇怪,因为它实际上列出了每条路径,然后说它找不到它。我确定我错过了一些小东西。任何帮助表示赞赏。

解决了:

Echo Deleting Folders

cd C:\Users\srvFIPITSTOPPAPP1\AppData\Roaming\Enfocus\Switch Server\temp

pause


for /F "delims=" %%I in ('dir /S /B /A:D "*mail*" ^| sort /R') do @rd /S /Q "%%I"

pause

echo Done

标签: batch-file

解决方案


Echo Deleting Folders

cd C:\Users\srvFIPITSTOPPAPP1\AppData\Roaming\Enfocus\Switch Server\temp

pause


for /F "delims=" %%I in ('dir /S /B /A:D "*mail*" ^| sort /R') do @rd /S /Q "%%I"

pause

echo Done

推荐阅读