Ecco un'altra pillola di uso dello
scripting dos windows. Per fare questa piccola guida introduttiva mi servirò di uno script che mi sono fatto proprio ieri per creare un listato di tutti i file presenti nel mio disco rigido. Qui naturalmente qualcuno salterà dalla sedia dicendo che basta un semplice
dir E:\Archivio >Lista.txt ma potrete notare voi stessi che il comandino
dir non sa niente della codifica delle accentate che si limita a troncare e poi non è proprio il massimo direi. Perciò mi appoggerò alla mia utility preferita
Sfk.exe! Questa utility oltre ad essere
Open Source è anche molto potente permettendo un controllo completo
su qualunque tipo di file. Vediamo un esempio pratico: creiamo una lista con
data,
ora,
dimensione e
nome file. Il tutto senza perdere le accentate ed il tutto perfettamente formattato in modalità
ascii puro.
CreaLista.bat:
TITLE OPERAZIONI SUI FILE CLS :SELECT @ECHO OFF ECHO. ECHO DIGITA LA DIRECTORY DA PROCESSARE: ECHO. ECHO [e] Esci dai comandi ECHO. set disk= set /P disk=Digita adesso il Percorso: %=% ECHO. ECHO Hai digitato "%disk%" ECHO. IF "%disk%" equ "e" (GOTO EXIT) IF "%disk%" equ "" (GOTO EXIT) ECHO DIGITA IL PERCORSO ED IL NOME DEL FILE DA SALVARE: ECHO. ECHO [e] Esci dai comandi ECHO. set file= set /P file=Digita adesso il File: %=% ECHO. ECHO Hai scelto
di salvare il file in "%file%" ECHO. IF "%file%" equ "e" (GOTO EXIT) IF "%file%" equ "" (GOTO EXIT) ECHO POSSIBILI SCELTE UTENTE: ECHO. ECHO [1] Lista tutti i file nelle directory ECHO [2] Lista solo i file doc nelle directory ECHO [e] Esci dai comandi ECHO. SET /p s= IF "%s%" equ "1" (GOTO ALL) IF "%s%" equ "2" (GOTO DOC) IF "%s%" equ "e" (GOTO EXIT) ECHO selezione errata! GOTO SELECT ::------------------------------------------------- ALL :ALL ECHO. ECHO Sto processando tutti i file nel percorso selezionato... sfk.exe list -time -size -nosub -dir "%disk%" >"%file%" ECHO. ECHO Finito! ECHO. GOTO
SELECT ::------------------------------------------------- DOC :DOC ECHO. ECHO Sto processando tutti i file DOC nel percorso selezionato... sfk.exe list -time -size -nosub -dir "%disk%" -file .doc >"%file%" ECHO. ECHO Finito! ECHO. GOTO SELECT ::------------------------------------------------- EXIT :EXIT |
Ricordiamoci di scaricare
Sfk.exe nella stessa cartella dove risiede il file batch
CreaLista.bat. Naturalmente se vogliamo possiamo anche creare una variante che crea una unica lista e di volta in volta accoda alla stessa altri file processati. Può tornare utile nel caso si voglia un solo listato invece di parecchi file di listato. La variante è quella che segue...
CreaListaUnica.bat:
TITLE
OPERAZIONI SUI FILE CLS :SELECT @ECHO OFF ECHO. ECHO DIGITA LA DIRECTORY DA PROCESSARE: ECHO. ECHO [e] Esci dai comandi ECHO. set disk= set /P disk=Digita adesso il Percorso: %=% ECHO. ECHO Hai digitato "%disk%" ECHO. IF "%disk%" equ "e" (GOTO EXIT) IF "%disk%" equ "" (GOTO EXIT) ECHO DIGITA IL PERCORSO ED IL NOME DEL FILE DA SALVARE: ECHO. ECHO [e] Esci dai comandi ECHO. set file= set /P file=Digita adesso il File: %=% ECHO. ECHO Hai scelto di salvare il file in "%file%" ECHO. IF "%file%" equ "e" (GOTO EXIT) IF "%file%" equ "" (GOTO EXIT) ECHO POSSIBILI SCELTE UTENTE: ECHO. ECHO [1] Lista tutti i file nelle directory ECHO
[2] Lista solo i file doc nelle directory ECHO [e] Esci dai comandi ECHO. SET /p s= IF "%s%" equ "1" (GOTO ALL) IF "%s%" equ "2" (GOTO DOC) IF "%s%" equ "e" (GOTO EXIT) ECHO selezione errata! GOTO SELECT ::------------------------------------------------- ALL :ALL ECHO. ECHO Sto processando tutti i file nel percorso selezionato... sfk.exe list -time -size -nosub -dir "%disk%" >>"%file%" ECHO. ECHO Finito! ECHO. GOTO SELECT ::------------------------------------------------- DOC :DOC ECHO. ECHO Sto processando tutti i file DOC nel percorso selezionato... sfk.exe list -time -size -nosub -dir "%disk%" -file .doc >>"%file%" ECHO. ECHO
Finito! ECHO. GOTO SELECT ::------------------------------------------------- EXIT :EXIT |
Se volete fare una lista ricorsiva togliete dalla riga comando
-nosub che significa "
No Subdirectory" ed in questo modo verrà scansionato tutto l'hard drive cosa che io non consiglio perché verrebbe fuori una lista enorme. Notate i due caratteri aggiunti nel secondo file batch "
>>"... dice di accodare alla lista esistente la nuova lista in modo da averne una sola. Per fare un esempio pratico lanciate il file batch e rispondete correttamente alle domande che lo script vi farà... per prima cosa vi chiederà il percorso da listare e per esempio mettiamo
E:\Archivio
senza doppie virgolette; alla seconda domanda che lo script vi porrà potrete rispondere
E:\Lista.txt senza doppie virgolette; infine vi verrà mostrato un menù dal quale scegliere se volete processare tutti i file oppure solamente i file
doc. Adesso sperimentate un pochino voi questa breve guida e buon divertimento