正如其他人所提到的,rd 命令具有/s 开关以递归删除子目录。您可以将其与/q 开关结合使用,以强制删除子目录(及其内容)而无需提示
rd /s /q c:\foobar
每个人都缺少的是,rd 不是完全替代 deltree,因为谷歌搜索 windows deltree 返回的每个页面似乎 (almost) 会让你相信。 deltree 命令适用于目录和文件,使其成为一个方便、通用的删除命令。即以下两个都有效:
deltree /y c:\foobar
deltree /y c:\baz.txt
但是rd(毫不奇怪)仅适用于目录。因此,只有这些命令中的第一个是有效的,而第二个给出错误并保持文件未被删除:
rd /s /q c:\foobar
rd /s /q c:\baz.txt
此外,del 命令仅适用于文件,而不适用于目录,因此只有第二个命令有效,而第一个给出错误:
del /f /q c:\foobar
del /f /q c:\baz.txt
没有像deltree 那样删除文件和目录的内置方法。单独使用 rd 和 del 充其量是不方便的,因为它需要区分文件系统对象(文件/文件夹名称)是文件还是目录,这并不总是可行或实用的。
您可以从以前的操作系统复制deltree 命令,但它只能在 32 位版本的 Windows 上运行,因为它是 16 位 DOS 命令(即使在 Windows 9x 中)。
另一种选择是创建一个同时调用del 和rd 的批处理文件;像这样:
::deltree.bat
@echo off
rd %* 2> nul
del %* 2> nul
你可以这样称呼它:
deltree.bat /s /q /f c:\foobar
deltree.bat /s /q /f c:\baz.txt
这会同时调用rd 和del,传入参数并将输出重定向到nul,以避免其中一个总是发出错误。
您可能希望自定义行为以适应或简化参数或允许错误消息,但即便如此,它也不理想,也不能直接替代deltree。
另一种方法是获取第三方工具,尽管找到一个是搜索查询制作的真正练习。