Как уже упоминалось, команда rd
имеет переключатель /s
для рекурсивного удаления подкаталогов. Вы можете комбинировать его с переключателем /q
для принудительного удаления подкаталога (и его содержимого) без запроса, например:
rd /s /q c:\foobar
Чего всем не хватает, так это того, что rd
является , а не точной заменой deltree
, так как на первый взгляд ( почти ) каждая страница, возвращаемая Google для windows deltree
, будет иметь вас верить. Команда 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
по отдельности в лучшем случае неудобно, поскольку требует определения, является ли объект файловой системы (file- / folder-name) файлом или каталогом, что не всегда возможно или практично.
Вы можете скопировать команду 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
.
Альтернативой является получение стороннего инструмента, хотя его поиск - реальное упражнение в создании поисковых запросов.