PDA

View Full Version : Ordinare le foto per data


Plextor
24-05-2008, 14:05
Ho così tante foto sul computer che non mi ci raccapezzo più, esiste un software che mi scansiona le cartelle che dico io e mi crea sul mio disco tante cartelle (che per nome hanno la data) in cui mettere le foto trovate?

ESEMPIO:
[01-01-08] tutte le fote scattate il primo gennaio di quest'anno
[02-01-08] tutte le fote scattate il due gennaio di quest'anno
...
[24-05-08] tutte le fote scattate oggi

PS:
se è freeware è meglio

john_revelator
24-05-2008, 15:39
Se riesci a mettere tutte le tue cartelle contenenti le foto all'interno di un'unica cartella risolviamo il problema tramite powershell.
Adesso sto uscendo ma domani, se non risolvi prima, ti butto giù uno script veloce che faccia al caso tuo. :)

Mi serve solo un'informazione, cioè se le foto le devi suddividere in cartelle per data di creazione o di ultima modifica.

john_revelator
25-05-2008, 14:45
Allora, per prima cosa devi installarti la powershell di microsoft nel caso non la abbia già.

http://www.microsoft.com/downloads/details.aspx?FamilyId=30125A46-B97C-4704-AA10-605E809D5933&displaylang=en

Ovviamente scarica il pacchetto italiano.

Una volta installata la richiami da esegui scrivendo powershell.
Se come ti ho scritto ieri hai tutte le tue cartelle contenenti le foto all'interno di una directory principale, la raggiungi tramite shell col comando cd.

Una volta posizionato dentro la cartella delle tue foto lanci i seguenti comandi:

1)
gci -r | ?{-not $_.psiscontainer} | % {$_.creationtime.tostring('dd-MM-yy')} | sort -unique | % {new-item -type directory $_}

con questo creerai tot cartelle nel formato gg-mm-aa

2)
$file = gci -r | ? {-not $_.psiscontainer}
[premi invio]
con questo salverai all'interno dell'array $file tutti i file

3)
$folder = gci | ? {$_.psiscontainer} | ? {$_ -match("\d{2}-\d{2}-\d{2}")}
[invio]

questo comando serve per memorizzare nell'array delle cartelle solo quelle appena create e non quelle già esistenti.

4) foreach ($fl in $file) {foreach($cart in $folder) {if($fl.creationtime.tostring('dd-MM-yy') -eq $cart) {mi $fl.fullname -destination $cart}}}

infine con questo comando cicli i due array e quando la data di creazione del file coincide col nome della cartella creata al punto 1, il file verrà spostato al suo interno.

P.S. Per inserire i comandi è sufficiente che li copi da qui e nella finestra di powershell, in corrispondenza del rettangolo celestino in alto a sinistra, clicki col tasto sx, vai su modifica e poi su incolla.
Per sicurezza fai le tue prove su una cartella di backup dei file.

Fammi sapere. :)