Leggo solo ora la discussione. Anche se hai già risolto ti propongo una soluzione alternativa che fa uso della powershell.
La puoi scaricare a questo indirizzo
http://www.microsoft.com/windowsserv.../download.mspx
prima di procedere alla sua installazione, nel caso non lo abbia già, devi anche scaricare il framework .NET 2.0 affinchè funzioni
http://www.microsoft.com/downloads/d...d-aab15c5e04f5
Una volta installata la richiami digitando powershell da esegui.
Per risolvere il tuo problema userei questo comando:
Codice:
gci c:,f: -recurse | ? {-not $_.psiscontainer} | Sort-Object length -desc | Select-Object name,length,@{name='Percorso'; Expression={split-Path $_.fullname} } | export-Csv "c:\elenco.csv" -notypeinformation -encoding "utf8"
Te lo spiego brevemente: gci è l'abbraviazione di get-childitem ed è l'equivalente del vecchio dir. Nel mio esempio verifico i file nelle unità c ed f. Lo switch -recurse serve per ciclare le unità in maniera ricorsiva. Il punto di domanda è la forma contratta del where e tramite {-not $_.psiscontainer} specifichi che vuoi cercare solo i file e non le cartelle. Tramite sort ordini per dimensione in ordine decrescente. A questo punto recuperi di tali file il nome, la dimensione e con il comando split-path il percorso completo escludendo il nome del file stesso. Infine reindirizzi quanto ottenuto su un file csv tramite l'apposito comando.
P.S. Nel caso voglia avere la dimensione espressa in mega sostituisci il length della select con
@{name='Dimensione'; Expression={$_.length/1MB}}
mentre se vuoi che vengano elencati anche i file nascosti e di sistema, aggiungi al comando gci oltre allo switch -recurse anche lo switch -force.
Come ultima cosa, visto che può risultare scomodo scrivere degli script tramite shell, ti consiglio di scaricarti l'editor powershell analyzer
http://www.powershellanalyzer.com/
che non necessita nemmeno di installazione e che semplifica notevolmente il lavoro.