Comando batch per modificare la data di creazione di ogni file in modo che corrisponda alle informazioni nel nome del file

1

Ho una cartella con diverse centinaia di file video. Tutti i nomi dei file sono in questo formato:

2011-08-27 11.18.00

Sfortunatamente la 'Data di creazione' per ogni file è la data in cui è stata convertita (una data nel 2014), non la data in cui è stata originariamente presa (specificata nel nome del file).

Ho scoperto che l'operatore touch -t può essere utilizzato per modificare la data di creazione di un singolo file.

Sotto:filesucuihomodificatocorrettamentelaDatadicreazione(conilcomandoprecedente)eilfilepercuiDatadicreazioneèancoraerrato.

Qualcuno può aiutare con il codice terminale che estrae le informazioni YYYYMMDDhhmm da ogni nome di file e lo usa per l'operazione touch -t per quel file, in un'operazione batch?

Mi piacerebbe che la data / ora di creazione fosse corretta, così quando importerò nella mia libreria ogni file sarà nel posto giusto nella timeline.

Mac OS: El Capitan 10.11.5

Versione terminale: 2.6.1

Grazie a tutti.

    
posta Andy P 09.07.2016 - 21:38
fonte

1 risposta

0
  • apri Terminale
  • digita cd (incluso lo spazio finale) e trascina la cartella contenente i file da rinominare nella finestra Terminale (la cartella è probabilmente Desktop/PRIMARYVIDEOS , quindi il comando dovrebbe apparire come cd /Users/Andrew/Desktop/PRIMARYVIDEOS )
  • premi Invio
  • scrivi (o copia / incolla)

    for f in *; do t=$(echo $f | sed -E 's/[-. mov]//g'); echo touch -t $t "$f"; done
    
  • premi Invio
  • se (e solo se) questo risulta in un elenco di comandi touch che sembrano ok, digita (o copia / incolla)

    for f in *; do t=$(echo $f | sed -E 's/[-. mov]//g'); touch -t $t "$f"; done
    
  • premi Invio
risposta data 10.07.2016 - 11:58
fonte

Leggi altre domande sui tag