tag online mp3tag mp3meta mp3id windows batch-file cmd dos

windows - online - ¿Qué pasó con deltree, y cuál es su reemplazo?



tag rename (8)

Como otros han mencionado, el comando rd tiene el rd /s para eliminar recursivamente los subdirectorios. Puede combinarlo con el /q para eliminar por la fuerza un subdirectorio (y su contenido) sin que se le solicite como tal

rd /s /q c:/foobar

Lo que a todos les falta es que rd no es un reemplazo exacto para deltree ya que aparentemente ( almost ) cada página devuelta por Google para windows deltree haría creer. El comando deltree funcionó tanto para los directorios como para los archivos , lo que lo convierte en un único y conveniente comando de eliminación para todos los propósitos. Eso es de lo siguiente son válidos:

deltree /y c:/foobar deltree /y c:/baz.txt

Sin embargo, rd (como es lógico) solo funciona para directorios . Como tal, solo el primero de estos comandos es válido, mientras que el segundo da un error y deja el archivo sin eliminar:

rd /s /q c:/foobar rd /s /q c:/baz.txt

Además, el comando del del del œ solo funciona para los archivos, no directorios, así que solamente el segundo comando es válido mientras que el primer da un error:

del /f /q c:/foobar del /f /q c:/baz.txt

No hay una forma incorporada de eliminar archivos y directorios como podría hacerse con deltree . Usar rd y del individualmente es inconveniente en el mejor de los casos porque requiere distinguir si un objeto del sistema de archivos (nombre de archivo / carpeta) es un archivo o directorio que no siempre es posible o práctico.

Puede copiar el comando deltree de un sistema operativo anterior, sin embargo, solo funcionará en versiones de 32 bits de Windows, ya que es un comando de DOS de 16 bits (incluso en Windows 9x).

Otra opción es crear un archivo por lotes que invoque tanto del y rd ; algo como esto:

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

Lo llamarías así:

deltree.bat /s /q /f c:/foobar deltree.bat /s /q /f c:/baz.txt

Esto llama tanto a rd como a del , pasando los argumentos y redirigiendo la salida a nul para evitar el error que uno de ellos emitirá invariablemente.

Es probable que desee personalizar el comportamiento para acomodar o simplificar parámetros o permitir mensajes de error, pero aún así, no es ideal y no es un reemplazo directo para deltree .

Una alternativa es obtener una herramienta de terceros, aunque encontrar uno es un ejercicio real en búsqueda-consulta-elaboración.

En versiones anteriores de MS-DOS, quiero decir la versión 7, pero podría estar equivocado, había un comando deltree , que eliminó recursivamente todos los subdirectorios y archivos de una ruta determinada.

deltree ya no existe, pero del no parece heredar la capacidad de eliminar un árbol. del /s elimina archivos, pero no carpetas.

¿Cómo de fácil (es decir, en un comando) eliminar un árbol de un archivo por lotes?


En realidad, los comandos RMDIR y RD en el sistema operativo Windows moderno fusionan los comandos RD y Deltree de Win 98 en un solo comando. Es un comando interno por lo que no encontrará ningún RD.exe y RMDIR.exe.

Al escribir este "RD /?" en cmd sin double qoutes obtendrá exactamente lo que desea.



Hoy en día, puedes usar Powershell para hacer la misma tarea:

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


Sintiéndome nostálgico, escribí mi propio deltree.exe. Funciona con directorios y archivos, y usa SHFileOperation () para la velocidad.

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.

Toma comodines y puedes usarlo como unix rm:

deltree -rf *


para eliminar un directorio y todo su contenido recursivamente

rd /s MY_DOOMED_DIR


$ help rd Removes (deletes) a directory. RMDIR [/S] [/Q] [drive:]path RD [/S] [/Q] [drive:]path /S Removes all directories and files in the specified directory in addition to the directory itself. Used to remove a directory tree. /Q Quiet mode, do not ask if ok to remove a directory tree with /S


rmdir /s /q directory