Renomeia a pasta de arquivos de época (hora unix) para mês-dia-ano-hora-minuto-segundo?

1

Eu tenho uma pasta cheia de gravações que todos lêem: "rec. (unixtime) .mp3"

ex: "rec.1447666687584.mp3" idealmente se transforma em algo como "10-16-2015_01-38-07.mp3"

Eu preciso converter esses nomes de arquivos muito regularmente, então estou assumindo que escrever um arquivo bat é a melhor maneira de fazer isso.

parece fácil remover os três primeiros caracteres vistos aqui

e a matemática para conversão de época em dias parece também tão boa ((((epochtimevalue / 1000) / 60) / 60) / 24) + a data 1/1/1970.

Alguém tem uma solução simples para converter nomes de arquivos como este?

    
por Thomas Newlands 17.01.2016 / 01:34

1 resposta

1

Meu utilitário de renomeação de expressão regular JREN.BAT é perfeito para esse problema. É um script puro (JScript / batch híbrido) que é executado nativamente em qualquer máquina Windows do XP em diante. A documentação completa está incorporada no script e pode ser alcançada executando jren /? (ou jren /?? se você quiser ajuda paginada).

O JREN.BAT permite combinar e renomear arquivos usando expressões regulares, e a cadeia de substituição pode ser uma expressão do JScript. Incorporado ao utilitário está uma função sofisticada de formatação de timestamp que torna o trabalho realmente fácil.

O seguinte forro irá renomear todos os arquivos "rec.EspochTime.mp3" no diretório atual para o
"MM-DD-AAAA_hh-mm-ss.mp3" formato. Ele irá converter o horário da época usando o fuso horário local. Existem opções adicionais que permitem especificar um fuso horário específico para a saída.

jren "^rec\.(\d+)\.mp3$" "ts({dt:$1,fmt:'{mm}-{dd}-{yyyy}_{hh}-{nn}-{ss}.mp3'})" /j

Mas eu recomendo strongmente que você mude o formato de data de MM-DD-AAAA para AAAA-MM-DD. Isso permite classificar facilmente as listagens de diretório em ordem cronológica. O formato {iso-dt} é um atalho para {yyyy}-{mm}-{dd} .

jren "^rec\.(\d+)\.mp3$" "ts({dt:$1,fmt:'{iso-dt}_{hh}-{nn}-{ss}.mp3'})" /j

Dado que JREN é em si um script em lote, você deve usar CALL JREN se colocar o comando dentro de outro script em lote.

    
por 17.01.2016 / 07:03