Elimine varios directorios con un prefijo común en el símbolo del sistema

Elimine varios directorios con un prefijo común en el símbolo del sistema

Quiero eliminar varios subdirectorios del mismo directorio. Los directorios tienen "tmp" como los primeros tres caracteres de su nombre. Esto no está funcionando:

C:\Documents and Settings\rajesh\Local Settings\Temp> rmdir tmp*

Respuesta1

El rmdircomando no acepta comodines. Puedes usar un pequeño forbucle para lograr el mismo objetivo. Esto ejecutará el rmdircomando varias veces, una para cada archivo/carpeta que coincida con el patrón dado:

for /D %f in (tmp*) do rmdir "%f"

  • Tenga en cuenta que si las carpetas no están vacías y desea que se repitan en ellas, deberá agregarlas /Sal final.
  • Si desea evitar la verificación de confirmación, agregue /Qtambién.
  • Si desea evitar que imprima el comando para cada línea, agréguelo @antes del comando.
  • Las comillas alrededor de %f permitirán eliminar carpetas con espacios.

Por ejemplo, con todas estas opciones, tendrías:

for /D %f in (tmp*) do @rmdir "%f" /Q /S

Para ver el uso completo, escriba rmdir /?.

Respuesta2

Una buena forma general y segura es crear un archivo con los directorios que desea eliminar. dir /ad > blah Luego verifique que el archivo tenga lo que desea y luego cree un comando for que repita cada línea del archivo. for /f %a in (blah) do @echo %aluego modifíquelo para los comandos que desee, por ejemplo, esta línea coloca rmdir al principio de cada línea del archivo for /f %a in (blah) do @echo rmdir %a o al final para agregar /q /s al rmdir %a que ya está ahí, es decir, use @echo rmdir %a /q. /s. Y luego, una vez que esté bien con los comandos que se ejecutarían, elimine la parte del eco para quefor /f %a in (blah) do @rmdir %a /q /s

otra forma es también utilizar ese método inicial de hacer que el archivo enumere los subdirectorios a eliminar. De modo que cada línea del archivo se puede modificar para leer el comando para eliminar ese subdirectorio. Luego use sed en el archivo para reemplazar el subdirectorio x con rmdir x /q /s.

Entonces, si tienes el archivo llamado blah. sed "s/.*/rmdir \0 \/q\/s/" blah >f type f mira que tiene todos los comandos. para eliminar cada subdirectorio. Si está satisfecho con él y desea ejecutarlo, puede cambiar el nombre de f a f.bat y ejecutarlo.

información relacionada