O Forfiles irá executar comandos em arquivos e pastas que correspontam à determinados critérios. 

Ele permite que você defina curingas, escolha apenas pastas, apenas arquivos, e o mais importante é que ele permite que você especifique algo 

como “Eu só quero os arquivos que tem mais de um dia de idade”

 

Primeiro, deixe-me mostrar os possíveis argumentos dele:

 

/P Path Name: Indica o path para iniciar a busca. A pasta padrão é a pasta de trabalho atual.

 

/M Search Mask: Pesquisa arquivos de acordo com uma máscara de busca. A máscara de pesquisa padrão é “*”

 

/S SubDirectories: Orienta o Forfiles a fazer uma busca recursiva em sub-diretórios. Similar ao comando “dir /s” do DOS.

 

/C Command: Indica o comando à ser executado para cada arquivo. Cadeias de comandos devem ser inseridas em aspas duplas.

 

As seguintes variáveis podem ser utilizadas na cadeia de comandos:

 

@File – retorna o nome do arquivo.

@Fname – retorna o nome do arquivo sem extensão.

@Ext – retorna apenas a extensão do arquivo.

@Path – retorna o caminho completo do arquivo.

@Relpath – retorna o caminho relativo do arquivo.

@Isdir – retorna “TRUE” se um tipo de arquivo é um diretório, e “falso” para arquivos.

@Fsize – retorna o tamanho do arquivo em bytes.

@Fdate – retorna a data da última modificação do arquivo.

@Ftime – retorna o tempo da última modificação do arquivo.

 

Para incluir caracteres especiais na linha de comando, use o código hexadecimal para o caracter no formato 0xHH (ex.: 0x09 para um tab).

 

Comandos cmd.exe internos devem ser precedidos de “cmd c /”.

 

/D data seleciona arquivos em que a data da última modificação foram maior ou igual a (+), ou menor ou igual a (-), à data especificada usando o formato “yyyy/MM/dd”, ou seleciona arquivos com a data da última modificação seja maior ou igual a (+) data atual mais “dd” dias, ou menor ou igual a (-) data atual menos “dd” dias. São válidos quaisquer números “dd” no intervalo de 0 à 32768. 

O “+” é tomado como sinal padrão se não especificado.

 

Legal, então vamos ao que interessa:

 

Vamos começar com o caminho. Queremos que ele procure em c:windowstemp

 

forfiles  -p "c:\windowstemp"

Quero incluir subpastas:

 

forfiles -p "c:\windowstemp" -s

Usando a opção de data, eu quero qualquer coisa com mais de um dia de idade:

 

forfiles -p "c:\windowstemp" -s -d -1

Eu só quero apagar os arquivos que terminam com .tmp:

 

forfiles -p "c:\windowstemp" -s -d -1 -m *.tmp

E, finalmente, o comando que desejo executar nos arquivos encontrados, no caso é o DEL:

 

forfiles -p "c:\windowstemp" -s -d -1 -m *.tmp -c "cmd /c del /f /q @path"

Observe o uso da variável @path – é uma das muitas variáveis que o Forfiles reconhece.

 

Linha de comando que vai apagar arquivos da nossa pasta temp com mais de 1 dia de idade:

 

forfiles -p "c:\windowstemp" -s -d -1 -m *.tmp -c "cmd /c del /f /q @path"

Listar os arquivos que foram modificados nos últimos três dias, na pasta atual de trabalho, recursivamente

forfiles /s /d +3

Listar os arquivos que foram modificados antes da data de 17/10/2013, na pasta do Windows.

forfiles /p c:\windows\ /d -17/08/2013

Listar os arquivos que foram modificados após a data de 17/10/2013.

forfiles /p c:\windows\ /d +17/08/2013

Deletar os arquivos que foram modificados nos últimos 7 dias, na pasta atual de trabalho.

forfiles /D +7 "cmd /C del @file"

Lista arquivos com -100 dias de da ultima modificação mostrando nome do arquivo, tamanho e data da ultima modificação

forfiles -p "d:\temp" /d -100 /c "cmd /c echo @file @fsize @fdate"

E pronto! Agora é só você criar uma tarefa agendada para rodar o comando acima uma vez por semana.

 

Se sua cópia do Windows não tem o Forfiles, você pode baixá-lo a partir do servidor FTP da Microsoft aqui:

 

ftp://ftp.microsoft.com/ResKit/y2kfix/x86/

 

Estou realmente impressionado com este pequeno utilitário e as suas infinitas possibilidades.


fonte: https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/forfiles

créditos: https://onofabio.wordpress.com/2016/06/24/forfiles-excluir-arquivos-com-mais-de-x-dias-de-idade/