Arquivo em lote: itera sobre arquivos modificados desde uma determinada data

Quero criar um arquivo em lotes que execute um comando (exclua o arquivo, por exemplo, embora meu comando seja personalizado / diferente) em cada arquivo que corresponda a um curinga (digamos * .jpg) que foi modificado desde alguma data (como 1-1-2010 ou posterior). A data pode ser codificada no arquivo em lotes ou passada como um parâmetro de linha de comando.

Pseudo-código:

foreach file C:\Images\*.jpg modified-since 1-1-2010 do
del file

Prefiro um arquivo em lote puro, não o PowerShell, VBScript, etc. Se não for possível usar a linguagem em lote puro, eu poderia usar um programa de linha de comando pequeno / gratuito de terceiros para ajudar na geração da lista de arquivos modificados desde. Preciso dar suporte à execução no Windows 2000 ou posterior.

A solução final que usei:

(Ligeiramente modificado da resposta por pipitas)

@ECHO OFF
for /f "usebackq tokens=1-7* delims=/: " %%I in (`dir/o-d/tw ^| findstr /I .jpg`) do (
  if "%%K%%I%%J %%N %%L%%M" GEQ "20100801 AM 0000" (
    del /P %%P
  )
)

Algumas notas: Remova / P para não exigir confirmação Y / N em cada exclusão. Eu escapei dos caracteres% para que eles funcionassem dentro de um arquivo .bat. O ^ é necessário para escapar do cano. O "usebackq" faz com que os backticks delimitem um comando a ser executado (em vez de pesquisar uma string ou arquivo literal), os tokens definem o número de variáveis para colocar a linha analisada iniciando com% I e os delimitam os delimitadores (incluindo o espaço à direita) ) usado para analisar a linha nesses tokens.

Eu adicionei .jpg como a string de pesquisa findstr, pois só queria processar arquivos .jpg. Alguns possíveis problemas são que seu código do idioma pode imprimir datas de maneira diferente, exigindo um número diferente de variáveis ou delimitadores diferentes, e você pode ter algumas correspondências positivas positivas com um ".jpg" incorporado no nome do arquivo (exigindo um regex findstr, etc.) .

Se você não precisar oferecer suporte ao Windows 2000 e versões anteriores, useforfiles como sugerido por Johannes tornaria isso muito mais fácil.

questionAnswers(1)

yourAnswerToTheQuestion