View Full Version : Creare directories e spostare files in automatico
Ciao a tutti,
avete in mente un modo automatizzato (via sware specifico, o cmd DOS) per:
- leggere i nomi di files (avi) da una directory;
- creare delle sottodirectories della stessa directory con il nome di ciascuno dei files (senza l'estensione);
- spostare ciascuno dei files nella sua sottodirectory di competenza?
Cioè, una cosa che sarebbe un lavorone a mano, ma facile facile con un algoritmo.....
Ciao e grazie in anticipo..!
john_revelator
25-02-2009, 16:14
In pratica avendo ad esempio
pippo.avi
poldo.avi
pluto.avi
vorresti creare tre cartelle
pippo
poldo
pluto
e in ciascuna spostare il file corrispondente. E' giusto?
john_revelator
25-02-2009, 16:36
Io ti consiglio di usare la powershell della microsoft.
La puoi scaricare da qui
http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx
nel caso non lo abbia già, per poterla installare è necessario avere il framework .net 2.0
http://www.microsoft.com/downloads/details.aspx?displaylang=it&FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5
Una volta installata la powershell, la avvii digitando da esegui powershell.
A questo punto, come faresti col classico prompt dei comandi, raggiungi la cartella che contiene i tuoi file avi ed esegui in successione questi quattro comandi:
gci *.avi | % {[io.Path]::GetFileNameWithoutExtension($_)} | % {new-Item -type directory $_}
Il comando presente qui sopra recupera l'elenco di tutti i file avi, ne estrae i nomi privi di estensione e per ciascuno crea la cartella corrispondente.
I due comandi sottostanti sono molto semplici.
Il primo assegna alla variabile $files l'elenco dei file avi e il secondo assegna alla variabile $folders l'elenco di tutte le cartelle (quelle appena create)
$files = gci *.avi
$folders =Get-ChildItem | ? {$_.psiscontainer}
foreach ($file in $files) {foreach($folder in $folders) {if([io.Path]::GetFileNameWithoutExtension($file.Name) -eq $folder) {move-item -literalpath $file.fullname -destination $folder}}}
L'ultimo comando infine cicla i file e le cartelle e quando il nome del file privo di estensione coincide con quello della cartella, lo sposta al suo interno. :)
Grande, grazie mille....!!
Stassera provo.....e ti so dire.
Grazie John, per due cose: mi hai risolto il problema, e mi hai fatto conoscere la PowerShell...!
Se passi da Milano, fai un fischio, che avrei piacere di bere una birra insieme !
john_revelator
25-02-2009, 22:41
Grazie John, per due cose: mi hai risolto il problema, e mi hai fatto conoscere la PowerShell...!
Se passi da Milano, fai un fischio, che avrei piacere di bere una birra insieme !
Grazie per l'invito. Noi sardi una birretta non ce la neghiamo mai. :D
P.S. Se inizi a usare la powershell non ne potrai più fare a meno. ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.