Tente:
exiftool '-CreateDate<${FileName;use Date::Manip;
Date_Init("DateFormat=non-US");
/on (.*at.*?)(?: #\d+)?\.jpg$/;$_=$1;
y/./:/;$_=UnixDate($_,"%Y-%m-%d %T")
}' ./*on\ *at*.jpg
(você pode ter que instalar o módulo Date::Manip perl ).
O -Tag<value define a tag correspondente. O ${tag;perl-code} pode ser usado para expandir para o valor de tag depois de ter sido processado pelo perl-code .
Aqui, o plano é usar a função Date::Manip do UnixDate para analisar a data no nome do arquivo e convertê-la em um formato aceitável para a tag CreateDate ( 2011-04-15 21:38:00 ).
Date::Manip compreende muitos formatos de data comuns. Por exemplo, ele entende 3-09-12 at 9:24 PM (embora você tenha que dizer se é a convenção dos EUA ou fora dos EUA onde o dia ou mês é o primeiro) e 2010-09-15 at 18.44 (observe o : em vez de . ). / p>
Então, o que fazemos é extrair essa parte do nome do arquivo, converter o . para : e passá-lo para UnixDate .