View Full Version : Programma per suddividere file in cartelle...
ciao a tutti, cercherò di essere il più chiaro possibile...
poniamo di avere una directory con al suo interno un determinato numero di file midi il nome dei quali è composto da due parole (autore - titolo), divise tra di loro dal trattino "-" (ad esempio 883 - chiuditi nel cesso); esiste un programma che mi permetta di creare tante sottodirectory quanti sono gli autori, in modo di avere una directory per ogni autore anzichè avere tutti i brani in un'unica directory?
ciao e grazie!!
Un programmino che potrebbe fare al caso tuo è FileSieve: http://software.bootblock.co.uk/?id=filesieve3.
Anch'io sono interessato a questo programma ma, cliccando su download, si apre "impossibile visualizzare la pagina".
Cmq puoi cercare anche la versione precedente (la 2.03).
Un programmino che potrebbe fare al caso tuo è FileSieve: http://software.bootblock.co.uk/?id=filesieve3.
Anch'io sono interessato a questo programma ma, cliccando su download, si apre "impossibile visualizzare la pagina".
Cmq puoi cercare anche la versione precedente (la 2.03).
Forse hai qualche blocco di sicurezza nel browser tipo quello che arresta i popups.
Forse hai qualche blocco di sicurezza nel browser tipo quello che arresta i popups.
Si avevi ragione, avevo il file hosts che bloccava il download.
In ogni caso, il link che ho postato, che si riferisce alla versione 3 del programma, (almeno a me) fa scaricare una versione vecchia, la 0.97.
Il link esatto per il download della ver. 3 è questo:
http://software.bootblock.co.uk/get.php?id=filesieve3
john_revelator
18-05-2008, 22:28
ciao a tutti, cercherò di essere il più chiaro possibile...
poniamo di avere una directory con al suo interno un determinato numero di file midi il nome dei quali è composto da due parole (autore - titolo), divise tra di loro dal trattino "-" (ad esempio 883 - chiuditi nel cesso); esiste un programma che mi permetta di creare tante sottodirectory quanti sono gli autori, in modo di avere una directory per ogni autore anzichè avere tutti i brani in un'unica directory?
ciao e grazie!!
Incuriosito dalla tua domanda ho fatto una prova e trovato una possibile soluzione. :)
Per prima cosa scaricati la powershell di microsoft.
http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx
Una volta installata la richiami digitando powershell da esegui.
Tramite il comando cd raggiungi la cartella contenente i tuoi file midi.
A questo punto digiti i seguenti comandi:
1)
gci | ? {-not $_psiscontainer} | % {$_.name.split("-")[0].trim()} | sort-object -unique | % {new-item -type directory $_}
con questo comando creerai le cartelle relative a ogni singolo cantante.
2) Carica le cartelle dentro un array
$arr = gci | ? {$_.psiscontainer}
3) Carica i file dentro un altro array
$file = gci | ? {-not $_.psiscontainer}
4) A questo punto cicli tutto il contenuto (file e cartelle e quando il nome della cartella coincide con la parte sinistra del nome del file, usando il "-" come separatore, sposti il file nell'apposita cartella
foreach ($fl in $file) {foreach($cart in $arr) {if($fl.name.split("-")[0].trim() -eq $cart) {mi "$fl" -destination $cart}}}
Testato e funzionante. :)
Incuriosito dalla tua domanda ho fatto una prova e trovato una possibile soluzione. :)
Per prima cosa scaricati la powershell di microsoft.
http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx
Una volta installata la richiami digitando powershell da esegui.
Tramite il comando cd raggiungi la cartella contenente i tuoi file midi.
A questo punto digiti i seguenti comandi:
1)
gci | ? {-not $_psiscontainer} | % {$_.name.split("-")[0].trim()} | sort-object -unique | % {new-item -type directory $_}
con questo comando creerai le cartelle relative a ogni singolo cantante.
2) Carica le cartelle dentro un array
$arr = gci | ? {$_.psiscontainer}
3) Carica i file dentro un altro array
$file = gci | ? {-not $_.psiscontainer}
4) A questo punto cicli tutto il contenuto (file e cartelle e quando il nome della cartella coincide con la parte sinistra del nome del file, usando il "-" come separatore, sposti il file nell'apposita cartella
foreach ($fl in $file) {foreach($cart in $arr) {if($fl.name.split("-")[0].trim() -eq $cart) {mi "$fl" -destination $cart}}}
Testato e funzionante. :)
mi sento morire solo a vedere tutte queste parentesi!!!! comunque mi armo di pazienza e provo subito!!
in effetti filesieve funziona (usando il metodo delimiter) però purtroppo non mi permette di cancellare la parte a monte del -; in pratica mi ordina i file in sottocartelle tante quanti sono gli autori, poi però al suo interno ritrovo il nome autore - titolo e non solo titolo...
ti faccio sapere! (più che altro ti chiedo di tenerti a disposizione se mi dovessi impappinare...)
allora, ho fatto una prova veloce con una directory con pochi brani, tanto per fare una prova...
allora: si sono create le sottocartelle con il nome autore e al loro interno ci sono i brani di quell'autore: però nel nome dei brani figura ancora il nome autore a sinistra del -; dove ho sbagliato?
john_revelator
19-05-2008, 17:34
Non hai sbagliato niente. Semplicemente prima che ti postassi lo script non avevi specificato che volevi rimuovere il nome dell'autore . Ci penso un pò e vedo di risolvere anche quel problema. :)
john_revelator
19-05-2008, 17:51
Ok, così sembra andare.:)
Lancia questo comando all'interno della tua cartella principale.
gci -recurse | ? {-not $_.psiscontainer} | % {rename-item $_.fullname -newname $_.fullname.split("-")[1].trim()}
grande!!!! :cincin:
tutto ok!!!!
ti ringrazio infinitamente john, non ho parole!!!!
alla prossima!
john_revelator
21-05-2008, 08:26
Felice di esserti stato utile. :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.