Blog (appunti di vita in ordine sparso)

7zip comprimere cartelle per backup

Comprimere in modo automatico più cartelle

Supponiamo di avere più cartelle all’interno di una directory su una macchina Windows e di volerle archiviare tramite un automatismo (senza dover far clic su ognuna, dire “comprimi”, ecc.). Pensa, per esempio, a dei file di log generati da un programma, salvati nella cartella corrispondente al mese, o al giorno del mese. Pensa di dover pianificare l’esecuzione di questo processo in automatico, su un server. E non vuoi avere un unico file zip compresso, bensì un file compresso per ogni cartella. Bene. Sapresti come fare?


Cartelle da comprimereC’è un sistema molto semplice e veloce che ti permette di raggiungere il tuo scopo.

Prima di tutto scarica il programma 7-Zip per la gestione dei file compressi (software open source molto leggero, disponibile in versione x86 a 32-bit e 64-bit) ed installalo. Se vuoi far si che i file di archivio compressi (zip, rar, arj, tar.. ed il formato specifico 7z) vengano aperti in automatico con 7-Zip sul tuo PC, basta che apri il programma, vai sul menu Strumenti, Opzioni e selezioni le estensioni che vuoi associare.

Verifica a che percorso hai installato il software sul tuo PC (verosimilmente potrebbe essere C:\Program Files\7-Zip).

Ora apri un editor di testo (Notepad di Windows va benissimo, anche se mi piace pensare che tu conosci ed usi Notepad++). In un file vuoto scrivi (modificando, eventualmente, il percorso all’interno del quale si trova l’eseguibile 7z.exe):

for /d %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\"

Cosa significa? Lo script non fa altro che prendere ogni cartella contenuta nel percorso in cui si esegue il file batch e passarla come parametro all’eseguibile di 7-Zip, creando un file compresso che avrà lo stesso nome della cartella.

Salva questo file, facendo attenzione a salvarlo con estensione .bat, anziché .txt (un file txt è un file di testo, mentre un bat è uno script batch, un file eseguibile); chiamalo, per esempio, comprimi.bat e salvalo nel percorso dove hai le varie cartelle che vuoi archiviare. Attenzione: puoi decidere di archiviare le tue cartelle in formato .zip, anziché .7z semplicemente modificando l’estensione.

Cartelle salvate come file compressiNon ti resta che eseguire il file batch comprimi.bat. Si aprirà una finestra di prompt di MS-DOS, dove verrà lanciato lo script; una volta terminata l’esecuzione ti troverai nella tua cartella tanti file compressi, quante sono le sotto-cartelle. In questo esempio, trattandosi di file di testo txt (quindi altamente comprimibili), con i file compressi risparmierai il 97% di spazio su disco-

A te l’onore (e l’onere, ovviamente), ora, di pensare a possibili applicazioni per questo semplice “trucchetto”.. 😉

Note

  • Su un sistema Linux si consiglia di non utilizzare questo approccio per effettuare dei backup, in quanto 7-Zip non gestisce correttamente i permessi utente sui file. Per un backup su Linux si può utilizzare il comando di compressione tar con gli opportuni parametri.
  • Il metodo della compressione è fortemente raccomandato, oltre che per quanto riguarda i file su PC, anche per le bottiglie di plastica da gettare, nonché tutti i rifiuti, in generale. Applicando questo piccolo e semplice trucco scoprirete come è semplice risparmiare almeno l’80% sui sacchetti per la raccolta differenziata..

Commenti offerti da CComment

Articoli correlati

Icone di TortoiseHg con Windows 10

Icone di TortoiseHg con Windows 10

Qt Creator apre solo un’applicazione

Qt Creator apre solo un’applicazione

di De Stefani Andrea
Morbegno - SONDRIO
P.IVA 01047560147

Social