Eliminar archivos dentro de una carpeta

Se puede crear un Bat que al ejecutarlo dentro de una carpeta elimine todos los archivos y deje solo los que tengan terminación .Jpg es decir deje solamente las imágenes.

1 Respuesta

Respuesta
1

Prueba con esto:

@echo off
set carpeta=d:\carpeta prueba
pushd %carpeta%
for /f "tokens=*" %%i in ('dir /b /a-d *.*') do if not "%%~xi" == ".JPG" if not "%%~xi" == ".jpg" echo del "%%i"
Popd

Este BAT te permite elegir la carpeta sobre la que quieres actuar poniéndola como valor de la variable CARPETA. Si, como dices, prefieres no tener que elegir carpeta sino simplemente copiar el BAT en la carpeta sería algo así:

@echo off
for /f "tokens=*" %%i in ('dir /b /a-d *.*') do if not "%%~xi" == ".JPG" if not "%%~xi" == ".jpg" echo del "%%i"

Las dos versiones se limitan a hacer ECHO del comando de borrado de los archivos afectados. Una vez que compruebes que van a hacer lo que quieres quita el ECHO que precede al comando DEL para que haga el borrado de verdad

Hola, funciona a la perfección es exactamente lo que quería.

 En el supuesto de que hubiera una carpeta dentro de la carpeta que se ejecuta el Bat y quiero eliminar esa carpeta con todo el contenido como se podría hacer.

 Muchas gracias saludos.

Podría hacerse así (corrijo la segunda versión, si quieres usar la primera solo tienes que aplicar la misma "receta"):

@echo off
for /f "tokens=*" %%i in ('dir /b /a-d *.*') do if not "%%~xi" == ".JPG" if not "%%~xi" == ".jpg" del "%%i"
for /f "tokens=*" %%i in ('dir /b /ad') do rd "%%i" /s /q

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas