2011-02-05 14 views
6
  1. Sé que podemos escribir programas para hacerlo.
  2. Sé que podemos escribir otros scripts (perl/vbscript/etc.) para hacerlo.

Busco a una solución símbolo del sistema de archivos/lotes para eliminar todas las carpetas que emparejan Sub_ * (como sub_1, sub_2 ...) que desea eliminar. rmdir o rd no admite comodines, y no puedo averiguar cómo canalizar el resultado del comando dir sub _ */ad a para eliminar también el comando uno por uno. Cualquier sintaxis de bucle, etc., que pueda usar?Eliminar carpetas con comodines de un archivo por lotes Windows 7

Respuesta

14
for /d %x in (sub_*) do rd /s /q "%x" 

Usted necesidad de duplicar la % si se utiliza en un archivo por lotes:

for /d %%x in (sub_*) do rd /s /q "%%x" 

No comprobado, asegúrese de utilizar primero echo o alguna otra cosa que no limpie inmediatamente los directorios;)

+2

Yup! ¡Funciona perfectamente! Había visto que algunas personas usaban %% f en el bucle for de los archivos, pero no sabía qué usar para los directorios. ¿De dónde miramos este tipo de información? –

+0

@Piyush: el nombre de la variable no es importante. El '/ D' dice' for' para buscar directorios. – Joey

+0

Ah ... Ahora lo sé ... ¡Gracias! –

1

forfiles /P C:\where\my\dirs\at /M sub_* /C "cmd /c if @isdir==TRUE rmdir /s /q @file"

+0

No sabía sobre el comando forfiles. ¡Gracias! –

Cuestiones relacionadas