Digamos que hay alguna carpeta en la D:
unidad:
D:\Air
D:\Abonden
D:\All
D:\Whatever
Quiero eliminar todas las carpetas que comienzan con "A" (incluidas todas las subcarpetas y archivos). Intenté este comando:
rmdir D:\A* /s /q
Sin embargo, recibo un error :(
El nombre de archivo, el nombre del directorio o la sintaxis de la etiqueta de volumen es incorrecta.
El del
comando funciona con *
, pero también necesito eliminar carpetas.
¿Hay alguna manera de lograr eso a través del rmdir
comando?
windows
command-line
batch
serdar
fuente
fuente
Respuestas:
Use esto para probar sin embargo:
Esto canalizará los comandos que se ejecutarán en el símbolo del sistema y le permitirá ver lo que está sucediendo.
Tenga en cuenta que esto también buscará subcarpetas como "C: \ temp \ jjj \ aaa" y eliminará la carpeta aaa. Si desea que solo mire las carpetas de nivel superior "C: \ temp \ aaa", elimine
"/s"
el comando.La clave para esto es la A *, donde pondría en su cadena de búsqueda. Esto aceptará comodines como
aaa*
,aaa*
y*aaa*
si así lo desea.fuente
for /f %%i in ('dir /a:d /s /b A*') do rd /s /q %%i
Eliminar carpetas con comodines
El comando
rmdir
/rd
solo no admite caracteres comodín (es decir,*
y?
). Puede solucionar esta limitación envolviéndola en unfor
bucle.Ejemplo de uso
Nota: Al eliminar archivos y carpetas, es posible que desee reemplazar el
rd
comando por elecho
primero. De esta manera, puede asegurarse de que todo lo que no se debe eliminar realmente lo haría.Patrones múltiples
Para eliminar varias carpetas que coinciden con diferentes patrones, la sintaxis no es muy diferente. Como @dbenham señaló correctamente, un comando de una línea es suficiente. También puede especificar diferentes rutas:
Bonus - Comprobando la existencia de la carpeta
En caso de que desee verificar si existen carpetas específicas, puede usar el siguiente comando:
Otras lecturas
fuente
FOR /D
yFOR /D /R
comandos. Simplemente usein( "A*" "B*" "C?D" )
./R
opción porque la subcarpeta que coincide con la máscara podría estar debajo de un padre que no lo hace.¡¿Cómo nadie le ha dicho al OP sobre los archivos aún ?!
forfiles /P D:\ /M A* /C "cmd /c if @isdir==TRUE rmdir /s /q @file"
fuente
for /d
como en la respuesta de y31415 es más limpia y más eficiente.La respuesta adn31415 es correcta, pero se rompe si coloca esto en un script por lotes o cmd. Me golpeé la cabeza durante horas hasta que descubrí que así es como lo usas.
En la ventana de comandos de DOS:
En secuencia de comandos Batch o cmd:
Si desea ponerlo en un archivo ".bat" o ".cmd", debe duplicar los caracteres "%".
fuente