Eliminar subcarpetas de un directorio con excepciones con batch

Iniciado por Andrew06, 21 Enero 2013, 13:08 PM

0 Miembros y 1 Visitante están viendo este tema.

Andrew06

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.

-- KiLiaN --

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..
Entren al chat de elhacker.net
    
   

@kln13

Andrew06

#2
hola

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

Código (dos) [Seleccionar]
@echo off
cd C:\Documents and Settings
attrib +h administrador
attrib +h "all user"
attrib +h marialopez
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"

Eleкtro

#3
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 (dos) [Seleccionar]
@Echo OFF

Set "Directorio=C:\Documents and Settings"
Set "Exclusiones=\<All.Users\> \<Default.User\> \<Admin\> \<marialopez\>"

FOR /F "Tokens=*" %%@ IN ('Dir /B /AD "%DIRECTORIO%"') DO (Echo "%%@" | FINDSTR /V "%Exclusiones%" >NUL && (
Echo "%%@"
:: RD /Q /S "%DIRECTORIO%\%%@"
)
)

Pause&Exit



Otra forma parecida de hacerlo:
Código (DOS) [Seleccionar]
@Echo OFF

Set "Directorio=C:\Documents and Settings"

FOR /F "Tokens=*" %%@ IN ('Dir /B /AD "%DIRECTORIO%"') DO (
If NOT "%%@" EQU "All Users" If NOT "%%@" EQU "Default User" If NOT "%%@" EQU "Admin" If NOT "%%@" EQU "marialopez" (
Echo "%%@"
:: RD /Q /S "%DIRECTORIO%\%%@"
)
)

Pause&Exit


Saludos.








Andrew06

#4
Gracias EleKtro H@cker fue de mucha ayuda.
tendre encuenta tu sugerencia.