Eliminar archivos en función de la extension en Windows

Aplicable en:
· Windows Server 2008
· Windows Server 2008 R2
· Windows Server 2012
· Windows Server 2012 R2


EL comando forfiles de Windows nos permite hacer una búsqueda en función de la extensión de los archivos y luego eliminarlos.

Por ejemplo, queremos eliminar todos los archivos con extensión .tmp de la carpeta c:\Windows\temp\
Primero listamos todos los archivos para comprobar que realmente la búsqueda es correcta antes de eliminar los documentos:

> forfiles /p "C:\Carpeta" /m *.tmp /C "cmd /c echo @file"



Si la búsqueda es correcta añadimos & Del @file para eliminarlos

> forfiles /p "C:\Carpeta" /m *.tmp /C "cmd /c echo @file & Del @file"



Parámetros:
· /p especifica la ruta donde se va a iniciar la búsqueda. Por defecto empieza en el directorio de trabajo actual.
· /m especifica el tipo de archivos. Si no se especifica busca cualquier tipo(*.*).
· /c para ejecutar comandos




Si el post te ha ayudado a salir de un marrón, te ha servido pá lo que sea o simplemente te ha gustado y quieres colaborar puedes pinchar en los anuncios ;)

2 thoughts on “Eliminar archivos en función de la extension en Windows

  1. Hola, Como puedo realizar el borrado de distintas extensiones, sin recurrir a varias lineas? Por ejemplo quiero que busque los archivos *.txt, *.docx,*.xlsx, etc.

    Tengo mi codigo de la siguiente forma en un batch
    ——————
    set logdirectory=E:\Usuarios\Jairo.Celis\Documents\
    set borrado=E:\Usuarios\Jairo.Celis\Documents\Prueba
    set extension1=*.txt
    set extension2=*.bmp

    set fulldate=%date%
    set year=%date:~6,4%
    set month=%date:~3,2%
    set day=%date:~0,2%

    set fulltime=%time%
    set hour=%time:~0,2%
    set minute=%time:~3,2%
    set second=%time:~6,2%

    set logfilename=%year%%month%%day%_%hour%%minute%%second%_del_logs.txt

    forfiles /p “%borrado%” /m %extension1% /m %extension2% /s /c “cmd /c echo El archivo @PATH, modificado el @fdate ha sido borrado el dia %date% a las %time% & del @PATH” >> “%logdirectory%%logfilename%”
    ——————

    • Hola Jairo,

      Creo que la mejor solución es ayudarte del comando for.
      Utilizamos el for para obtener distintas máscaras de búsqueda y se las pasamos al forfiles.

      Ejemplo:
      > for %G in (.txt,.docx,.xlsx) do forfiles -p C:\Carpeta -m *%G -c “cmd /c echo @path”

      Espero te ayude.
      Un saludo.

Leave a Reply

Your email address will not be published. Required fields are marked *