Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Andrew06 en 21 Enero 2013, 13:08 pm



Título: Eliminar subcarpetas de un directorio con excepciones con batch
Publicado por: Andrew06 en 21 Enero 2013, 13:08 pm
Hola amigos

Necesito código batch para eliminar subcarpetas de un directorio con excepciones dependiendo el nombre de carpeta.  Ejemplo de la ruta C:\Documents and Settings de esta carpeta necesito eliminar los usuarios MENOS Admin, All Users, Defalut User  y
marialopez.

Agradezco su ayuda.


Título: Re: Eliminar subcarpetas de un directorio con excepciones con batch
Publicado por: -- KiLiaN -- en 21 Enero 2013, 13:11 pm
Se podrá hacer de varias formas pero ahora mismo se me ocurre que la carpetas que no quieras que se borren les cambies los atributos con attrib a oculto o sistema y que borres lo demás..


Título: Re: Eliminar subcarpetas de un directorio con excepciones con batch
Publicado por: Andrew06 en 23 Enero 2013, 00:20 am
hola

Kilian oculte las carpetas como me recomendaste pero no me funcionolo estoy haciendo de la siguiente manera:

Código
  1. @echo off
  2. cd C:\Documents and Settings
  3. attrib +h administrador
  4. attrib +h "all user"
  5. attrib +h marialopez
  6. rd /s "C:\Documents and settings"

Las carpetas quedan ocultas... pero cuando comienza a eliminar elimina todos los archivos que están dentro de esa carpeta. No se que mas pueda hacer..



[MOD]
1. No dupliques posts.
2. Usa el botón "Insertar código"


Título: Re: Eliminar subcarpetas de un directorio con excepciones con batch
Publicado por: Eleкtro en 23 Enero 2013, 09:50 am
El code de arriba no te funciona porque intentas eliminar el directorio raíz, obviamente que las subcarpetas estén ocultas importa poco en esa situación xD.

Puedes hacer esto otro:

1. Listar las carpetas del directorio para filtar las que no deseas eliminar.
2. Eliminar las que quedan.

Código
  1. @Echo OFF
  2.  
  3. Set "Directorio=C:\Documents and Settings"
  4. Set "Exclusiones=\<All.Users\> \<Default.User\> \<Admin\> \<marialopez\>"
  5.  
  6. FOR /F "Tokens=*" %%@ IN ('Dir /B /AD "%DIRECTORIO%"') DO (Echo "%%@" | FINDSTR /V "%Exclusiones%" >NUL && (
  7. Echo "%%@"
  8. :: RD /Q /S "%DIRECTORIO%\%%@"
  9. )
  10. )
  11.  
  12. Pause&Exit


Otra forma parecida de hacerlo:
Código
  1. @Echo OFF
  2.  
  3. Set "Directorio=C:\Documents and Settings"
  4.  
  5. FOR /F "Tokens=*" %%@ IN ('Dir /B /AD "%DIRECTORIO%"') DO (
  6. If NOT "%%@" EQU "All Users" If NOT "%%@" EQU "Default User" If NOT "%%@" EQU "Admin" If NOT "%%@" EQU "marialopez" (
  7. Echo "%%@"
  8. :: RD /Q /S "%DIRECTORIO%\%%@"
  9. )
  10. )
  11.  
  12. Pause&Exit

Saludos.


Título: Re: Eliminar subcarpetas de un directorio con excepciones con batch
Publicado por: Andrew06 en 24 Enero 2013, 02:19 am
Gracias EleKtro H@cker fue de mucha ayuda.
tendre encuenta tu sugerencia.