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.
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..
hola
Kilian oculte las carpetas como me recomendaste pero no me funcionolo estoy haciendo de la siguiente manera:
@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"
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.
@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:
@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.
Gracias EleKtro H@cker fue de mucha ayuda.
tendre encuenta tu sugerencia.