使用“rmdir”功能但保留指定的目录

时间:2011-08-31 18:23:18

标签: batch-file cmd windows-console

我想要rmdir /s的功能,但我需要保留指定的目录。 rmdir /s除了指定的目录外,还删除所有文件和子目录。

我也尝试使用del /s但是我在指定目录中留下了空文件夹。我也需要删除这些文件夹。

关于我如何做到这一点的任何指导?

2 个答案:

答案 0 :(得分:7)

最简单的方法是将目录更改为指定目录并在“。”上调用rd命令。目录。像:

cd toYourDirectory (or pushd toYourDirectory)
rd /q /s . 2> nul
  • / q - 确保您不会被提示
  • / s - 做子文件夹,文件等等 上..
  • “。” - 暗示CURRENT目录
  • 2> nul - 确保不会报告 rd命令尝试删除自身时的错误(即 你想要什么)

答案 1 :(得分:1)

< 3 for loops

FOR /F "USEBACKQ tokens=*" %%F IN (`dir /b /a:d /s "C:\top\directory\" ^| FIND /v /i "C:\directory\to\omit"`) DO (
 rmdir /s "%%F"
)

如果您希望危险地进行攻击,请使用/q开关w / rmdir 0.o

所以,假设你想在remdir /s上执行C:\Documents and Settings\Mechaflash\,但是你希望保留.\Mechaflash文件夹(清空)

FOR /F "USEBACKQ tokens=*" %%F IN (`dir /b /a:d /s "C:\Documents and Settings\Mechaflash\" ^| FIND /v /i "C:\Documents and Settings\Mechaflash\"`) DO (
 rmdir /s "%%F"
)
DEL /Q /F "C:\Documents and Settings\Mechaflash\*"