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
.