Borrado de archivos selectivos en MsDos Batch

Iniciado por el_lujo, 26 Agosto 2016, 22:41 PM

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

el_lujo

Saludos, señores.

Debido a una necesidad, quisiera una ayuda de ustedes los expertos.

Mi necesidad es la siguiente:
a 50 usuarios se les guardan todos los archivos de documentos con un gestor de respaldo; pero cada día debo borrar esos archivos navegando cada una de las carpetas.

En síntesis, quisiera saber si existe una forma (creo que sí) que yo pueda en batch borrar todos los archivos exceptuando algunas subcarpetas y por ende los archivos en esa subcarpeta.

Navegando por la web vi unas líneas de códigos para manejo de borrado de carpetas y obviando algunas dependiendo de un archivo .txt.

Lo encontrado fue esto:
Esto para crear la lista de directorios y guardarlos en un archivo:


dir /ad /b > carpetas.txt

Y esto para eliminar las subcarpetas


For /f "delims=" %n in (carpetas.txt) do rmdir /s /q "%%n"


Ahora bien, tratando de implementar esto a mi necesidad:


@ECHO OFF
TITLE BORRADO DOCs. OFFICE
ECHO SE COMENZARA CON EL BORRADO DE LOS ARCHIVOS
ECHO ASEGURESE DE QUE LA CARPETA DE LOS ARCHIVOS EN OFFICE
ECHO ESTA MAPEADA EN LA UNIDAD Z:
PAUSE
Z:
For /f "delims=" %n in (carpetas.txt) do rmdir /s /q "%n"
ECHO BORRADO COMPLETO
PAUSE > NULL


La pregunta:

Cómo puedo, en vez de borrar subcarpetas, borrar sólo los archivos, tanto de la carperas como subcarpetas de esa unidad?

Gracias.

SrMcLister

Podrías indicarle al batch que quieres que te borre todos los docx o de la extensión que quieras..
Hacer un for para recorrer esa unidad por carpetas y subcarpetas como tienes en tu script ya, pero para mi que rmdir habría que sustituirlo por del o erase que es para borrar archivos no carpetas.
Hace bastante que no me examino de Windows jaja
Siento no poder ayudarte más, si lo enfocas de distinta forma no dudes en escribirlo
Un Saludo crack!!
Código (cpp) [Seleccionar]

return((u.areHappy() && u.knowIt()) ? u.clapYourHands() : u.goFuckYourself());

Eleкtro

#2
Cita de: el_lujo en 26 Agosto 2016, 22:41 PMLa pregunta:

Cómo puedo, en vez de borrar subcarpetas, borrar sólo los archivos, tanto de la carperas como subcarpetas de esa unidad?

Código (dos) [Seleccionar]
For /F "UseBackQ Tokens=* Delims=" %%# In (
   "%CD%\Carpetas.txt"
) Do (
   PUSHD "%%~#"
   Call Echo "%%CD%%"
   (Call Del /Q /S "%%CD%%\*.*")2>Nul
   POPD
)


Saludos








el_lujo

Gracias, señores por sus aportes.  Voy a probar el código enviado por SrMcLister.

Mil gracias nuevamente.

Tomas1982

#4
Esto se puede modificar en dependencia del interés que tenga cada User.
Espero que te sirva..
Código (actionscript) [Seleccionar]

@echo off
:: Unidades a escanear
for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y) do (
::extensiones a borrar. Puedes poner las que desees, separadas por coma y un espacio execto la ultima.  
for %%e in (jpg, docx, pdf, mpg) do (
for /f "tokens=*" %%a in ('dir /b /s "%%i:\*.%%e"') do (
ERASE /F /Q "%%a"
)
)
)
exit