mercoledì 8 febbraio 2012

Stampare la lista di file di una cartella e relative sottocartelle in windows

Su internet ho trovato vari metodi e programmini per fare più o meno quello che sto per scrivere, ma nessuno di essi mi soddisfava...
Dopo vari tentativi con i comandi tree, dir ed anche un paio dei programmini citati nei post linkati qui sopra. Ho deciso ispirandomi a questo articolo di farmi da solo un piccolo script con l'aiuto di un bel programma open source, visto che avevo due principali esigenze:
  1. avere la lista dei file ordinata per sottocartelle e nomi (cosa che tree non fa)
  2. togliere tutte le informazioni che non mi servivano quali dimensione, date file informazioni extra delle cartelle, intestazioni ecc. (cosa praticamente impossibile con il comando dir o gli altri programmini)
ho scovato quindi una vera chicca che è Swiss File Knife, che come si capisce dal nome è un vero e proprio coltellino svizzero per la gestione dei file.
Mi sono creato una cartella (Maiuz Tools\Stampa Cartelle e File\) tra i programmi  e dentro ci ho messo il file sfk164.exe che è quello principale di Swiss File Knife ed ho editato il seguente comando batch (che ho chiamato stampa.cmd)
@echo off
@echo LISTA FILE della cartella %1 e delle relative sottocartelle > "%temp%\Lista File"
@echo - >> "%temp%\Lista File"
@echo - >> "%temp%\Lista File"
"%ProgramFiles(x86)%\Maiuz Tools\Stampa Cartelle e File\sfk164.exe" list -sort -relnames %1 >> "%temp%\Lista File"
start /wait %windir%\notepad.exe "%temp%\Lista File"
del "%temp%\Lista File"
piccola nota, se avete cura come me di proteggervi con un programma tipo Comodo Internet Security ricordatevi di aggiungere anche lo script tra i file sicuri, e ricordatevi i permessi!
Ho quindi editato il Registo di sistema con regedit.exe, in particolare sono andato ad inserirmi una nuova chiave in HKEY_CLASSES_ROOT\Folder\shell chiamandola Stampa lista files e sottocartelle e dentro ad essa ho inserito una ulteriore chiave chiamata command della quale sono andato ad editare il valore (Predefinito) con %ProgramFiles(x86)%\Maiuz Tools\Stampa Cartelle e File\stampa.cmd %1 così da avere sempre a portata di mano la lista dei file ben ordinata già pronta per essere stampata.

Nessun commento:

Posta un commento