In earlier versions of MS-DOS – I want to say version 7, but I could be wrong – there was a deltree
command, which recursively deleted all subdirectories and files from a given path.
deltree
no longer exists, but del
didn't seem to inherit the ability to delete a tree. del /s
deletes files, but not folders.
How to you easily (i.e., in one command) delete a tree from a batch file?
Best Solution
As others have mentioned, the
rd
command has the/s
switch to recursively remove sub-directories. You can combine it with the/q
switch to forcibly delete a sub-directory (and its contents) without prompting as soWhat everybody is missing is that
rd
is not an exact replacement fordeltree
as seemingly (almost) every page returned by Googling forwindows deltree
would have you believe. Thedeltree
command worked for both directories and files, making it a single convenient, all-purpose deletion command. That is both of the following are valid:However
rd
(not surprisingly) only works for directories. As such only the first of these commands is valid while the second gives and error and leaves the file un-deleted:Further, the
del
command only works for files, not directories, so only the second command is valid while the first gives an error:There is no built-in way to delete files and directories as could be done with
deltree
. Usingrd
anddel
individually is inconvenient at best because it requires distinguishing whether a file-system object (file-/folder-name) is a file or directory which is not always possible or practical.You can copy the
deltree
command from a previous OS, however it will only work on 32-bit versions of Windows since it is a 16-bit DOS command (even in Windows 9x).Another option is to create a batch-file that calls both
del
andrd
; something like this:You would call it as so:
This calls both
rd
anddel
, passing in the arguments and redirecting the output tonul
to avoid the error that one of them will invariably emit.You will probably want to customize the behavior to accomodate or simplify parameters or allow error messages, but even so, it is not ideal and not a direct replacement for
deltree
.An alternative is to get a third-party tool, though finding one is a real exercise in search-query-crafting.