Ho un albero di directory con migliaia di pdf e tif. Una cartella può contenere più pdf o tif in questo caso sono numerati 1.pdf, 2.pdf ecc ... Devo renderli disponibili e assicurarmi che siano prima i file più vecchi elaborati manualmente - quindi voglio rinominarli con i loro la data di creazione e l'ora (1.pdf -> 20150415481876.pdf):Rinomina file con data e ora di creazione in batch di Windows
Attualmente io uso
@echo off
set datetime=%~t1
set name=%~n1
set extension=%~x1
set year=%datetime:~6,4%
set month=%datetime:~3,2%
set day=%datetime:~0,2%
set hour=%datetime:~11,2%
set min=%datetime:~14,2%
ren %1 "%year%%month%%day%%hour%%min%%name%%extension%"
Questo può ora rinominare correttamente un file 1.tif a 2014052513241.tif (file creato 2014/05/25 13 : 24). Ma come posso rendere questo in grado di gestire più file nella stessa cartella (ad esempio 1.tif 2.tif 3.tif) se io chiamo il batch con batch.bat * .tif? Grazie
ringrazio molto . 1. Fa correttamente eco ren 1.tif 201504160213.tif ma il cambio di nome non avviene. Qualche idea del perché? 2. Inoltre, nel caso in cui ci siano più file con lo stesso timestamp, tenta di rinominarli con lo stesso nome che non funzionerà, può esserci un contatore implementato che annunci qualcosa come _N al nome del file prima dell'estensione? –
@ PhiläBu - potrebbero essere gli stessi timestamp sono il problema. È possibile aggiungere i millisecondi e i secondi al timestamp e vedere cosa accadrà. – npocmaka
Grazie ancora. Così ho provato l'approccio, ma non aiuta perché i file stessi sembrano avere milisec = 000. Come dovrei adottare lo script sopra per fare quanto segue: ho 100 directory in una certa directory root e voglio rinominare tutte queste 100 directory con la loro data di creazione? –