什么事情发生deltree,并且它的replace是什么?

在MS-DOS的早期版本中 – 我想说的是版本7,但我可能是错的 – 有一个deltree命令,recursion删除给定的path中的所有子目录和文件。

deltree不再存在,但del似乎并没有inheritance删除树的能力。 del /s删除文件,但不是文件夹。

如何轻松地(即在一个命令)从batch file中删除一棵树?

正如其他人所说, rd命令有/s切换recursion删除子目录。 你可以把它和/q开关结合起来强行删除一个子目录(及其内容)而不用提示

 rd /s /qc:\foobar 

每个人都缺less的是, rd 不是一个确切的替代deltree ,看起来( 几乎 )每个网页返回谷歌searchwindows deltree会让你相信。 deltree命令适用于目录和文件 ,这使得它成为一个简单的,通用的删除命令。 这是以下两个是有效的:

 deltree /yc:\foobar deltree /yc:\baz.txt 

然而rd (不奇怪) 只适用于目录 。 因此,只有这些命令中的第一个是有效的,而第二个命令给出错误并且不删除文件:

 rd /s /qc:\foobar rd /s /qc:\baz.txt 

此外, del命令仅适用于文件,而不适用于目录,因此只有第二个命令有效,而第一个命令给出错误:

 del /f /qc:\foobar del /f /qc:\baz.txt 

没有像deltree可以完成的那样删除文件和目录的内置方式。 单独使用rddel很不方便,因为它需要区分文件系统对象(文件/文件夹名称)是否是不总是可行或实用的文件或目录。

你可以从之前的操作系统拷贝deltree命令,但是它只能在32位版本的Windows上运行,因为它是一个16位的DOS命令(甚至在Windows 9x中)。

另一个select是创build一个既调用del又调用rd的batch file; 像这样的东西:

 ::deltree.bat @echo off rd %* 2> nul del %* 2> nul 

你会这样称呼它:

 deltree.bat /s /q /fc:\foobar deltree.bat /s /q /fc:\baz.txt 

这将调用rddel ,传入参数并将输出redirect到nul以避免其中一个总是会发出的错误。

您可能需要自定义行为来容纳或简化参数或允许错误消息,但即使如此,它也不是理想的,不能直接替代deltree

另一种方法是获得第三方工具,但find​​一个工具是search查询工具中的一个真正的练习。

它被replace为命令:RMDIR或RD

用/ S删除所有子目录

用/ Q静静地使用它

例:

 RMDIR /S /Q Folder2Delete RD /S /Q Folder2Delete 

文档:

  • DELTREE在维基百科
  • RMDIR在维基百科
  • RMDIR在微软

感觉怀旧,我写了我自己的deltree.exe。 它可以同时处理目录和文件,并使用SHFileOperation()来提高速度。

https://github.com/ai7/toolbox/tree/master/deltree

 deltree v1.01 [Mar 27 2015, 16:31:02] (gcc 4.9.1) Usage: deltree [options] <path> ... Options: -y yes, suppresses prompting for confirmation -s silent, do not display any progress dialog -n do nothing, simulate the operation -f force, no prompting/silent (for rm compatibility) -r ignored (for rm compatibility) Delete directories and all the subdirectories and files in it. 

它需要通配符,你可以像unix一样使用它:

 deltree -rf * 
 rmdir /s /q directory 
  $ help rd
删除(删除)一个目录。

 RMDIR [/ S] [/ Q] [drive:]path
 RD [/ S] [/ Q] [drive:]path

     / S删除指定目录中的所有目录和文件
            除了目录本身。 用于删除目录
            树。

     / Q安静模式,不要问是否可以删除/ S目录树

实际上,现代Windows操作系统中的RMDIR和RD命令在一个命令中合并了Win 98的命令RD和Deltree。 这是一个内部命令,这就是为什么你不会find任何RD.exe和RMDIR.exe。

通过input这个“RD /?” 在cmd没有双重qoutes您将得到正是您想要的。

如今,您可以使用Powershell来完成相同的任务:

 powershell -Command "Remove-Item 'PathToMyDirectory\*' -Recurse -Force" 

删除一个目录和所有的内容recursion

 rd /s MY_DOOMED_DIR