Procurando por utilitário para alterar o lote criado / modificado data de vários arquivos em ascendente datetime (windows XP / 7 / Mac / Linux)

3

Estou procurando um utilitário que lote / lote modifique os registros de data do arquivo (com data de modificação e / ou data de criação) para a segunda precisão, mas em ordem incremental crescente, por exemplo,

File1 2012-04-18 10:21:01
File2 2012-04-18 10:21:02
File3 2012-04-18 10:21:03

Eu quero fazer isso porque quero forçar o Flickr a pedir fotos enviadas em uma determinada sequência.

Eu gostaria disso para o Windows ou Mac. Eu também tenho o Ubuntu para poder considerar isso como uma opção secundária.

    
por therobyouknow 19.04.2012 / 02:00

3 respostas

4

Isso

  • funciona em Linux / Mac,
  • não usa atrasos artificiais para criar intervalo de tempo e
  • mantém a data de modificação perto do original (muitas vezes acho essas datas úteis em outros contextos).

#!/bin/sh
REF=${1}
i=1
while [ $# -gt 1 ]; do
    if ! [ "${2}" = "${REF}" ]; then
        touch -h -r "${REF}" -d "+${i} seconds" "${2}"
        i=$((i+1))
    fi
    shift
done

Basta especificar os arquivos na ordem temporal desejada e ele usará o registro de data e hora do primeiro arquivo como base e adicionará um segundo de forma incremental a cada um dos seguintes argumentos.

Se o arquivo de referência for dado várias vezes, ele reterá seu horário original (isso é apenas para poder fazer, por exemplo, "retime 0001.jpg *" sem alterar o registro de data e hora de referência). Se outro arquivo for dado várias vezes, ele receberá o último registro de data e hora lógico.

Sem -h , touch irá desreferenciar links simbólicos, o que provavelmente não é desejado neste caso (se você disser "symbolic what-now?", então não se preocupe).

    
por 19.04.2012 / 08:19
2

Boa pergunta, embora talvez o Flickr deva ter alguma opção para solicitar os arquivos enviados.

Para o Windows, eu sugeriria

File Changer em massa da Nirsoft

Para o Linux, é fácil escrever um script bash e utilizar o comando tocar para alterar vários arquivos.

O comando de toque também está disponível no Mac OS X, alguém escreveu uma tarefa de automação para fazer isso, mas novamente isso pode ser feito no terminal

FILES=./*
for f in $FILES
do
  echo "Processing $f file..."
  touch $f 
done

Este script bash tocará todos os arquivos em ordem crescente. Você pode adicionar um "sleep" ao script se quiser que cada arquivo tenha um segundo valor diferente.

user@computer:/tmp/data$ ls -l

total 9028
-rw-r--r-- 1 user user  428800 Apr 19 12:18 File1
-rw-r--r-- 1 user user 4338800 Apr 19 12:18 File2
-rw-r--r-- 1 user user 4438800 Apr 19 12:18 File3
-rwxrwxrwx 1 user user      78 Apr 19 12:18 fix.sh
    
por 19.04.2012 / 04:09
0

"O Nirsoft Bulk File Changer altera o registro de data dos arquivos em um incremento definido, aumentando de acordo com a saída."

A resposta é sim. Eu fiz isso para um lote de arquivos. Pode ser feito.

Selecione a lista de arquivos no Total Commander ou no Windows Explorer e organize na ordem desejada

Clique e puxe para o Nirsoft Bulk File Changer

Ajustar a data e hora do primeiro arquivo Por exemplo: Data de modificação [/] 07-abr-5 [/] 11:40:10 AM

[/] Adicione [1] [Minutos]

Clique em [/] Modo de sequência de data / hora

NÃO deve clicar em [] A hora é especificada em GMT

Clique em [Do it]

Todas as moscas na lista são alteradas com o carimbo de data e hora, com sequência de alteração de 1 minuto em sequência. Primeiro arquivo adicionado 1 minuto Segundo arquivo adicionado 2 minutos Terceiro arquivo adicionado 3 minutos e assim por diante .....

    
por 09.04.2015 / 19:13