|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Sep 2005
Messaggi: 42
|
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!! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2005
Messaggi: 1515
|
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). |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Feb 2007
Messaggi: 1020
|
Quote:
|
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Mar 2005
Messaggi: 1515
|
Quote:
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 |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Quote:
![]() Per prima cosa scaricati la powershell di microsoft. http://www.microsoft.com/windowsserv.../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. ![]() |
|
![]() |
![]() |
![]() |
#6 | |
Member
Iscritto dal: Sep 2005
Messaggi: 42
|
Quote:
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...) |
|
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Sep 2005
Messaggi: 42
|
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? |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
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.
![]() |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
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()} |
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Sep 2005
Messaggi: 42
|
grande!!!!
![]() tutto ok!!!! ti ringrazio infinitamente john, non ho parole!!!! alla prossima! |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Felice di esserti stato utile.
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:16.