Zippare Cartelle da Linea di Comando

8 Febbraio 2009 di Daniele Frulla


Dalla versione Microsoft XP e successive è possibile gestire attraverso il sistema operativo file di formato standard .ZIP attaverso la creazione di cartelle compresse tramite una interfaccia grafica.
Cartella Compressa - Zip Archivio

 

Per poter comprimere cartelle  attraverso un batch file o da linea di comando, sono disponibili due possibilità:

1- Utilizzare software esterni che permettano l’esecuzione di programmi da linea di comando;
2- Utilizzare Microsoft attraverso la creazione di VBScript.

1- Software di Terze Parti rispetto a Microsoft

Tra i software di terze parti (cioè che non rientrino tra quelli del sistema operativo) ve ne sono diversi che permettono di zippare cartelle o file tramite un semplice comando così da poter pianificare una compressione ad esempio giornaliera. Ricordiamo tra i più usati:

7zip versione command line;

L’utilizzo è semplicissimo:
– scaricare la versione 7zip command line;
– scomprimere in una cartella
– per comprire in formato zip digitare:

7za.exe a -tzip -r [Archivio.ZIP] [Cartella da Comprimere]

Le opzioni di 7zip da linea di comando sono:

7-Zip (A) 4.64  Copyright (c) 1999-2009 Igor Pavlov  2009-01-03

Usage: 7za […] […]

  a: Add files to archive
b: Benchmark
d: Delete files from archive
e: Extract files from archive (without using directory names)
l: List contents of archive
t: Test integrity of archive
u: Update files to archive
x: eXtract files with full paths

  -ai[r[-|0]]{@listfile|!wildcard}: Include archives
-ax[r[-|0]]{@listfile|!wildcard}: eXclude archives
-bd: Disable percentage indicator
-i[r[-|0]]{@listfile|!wildcard}: Include filenames
-m{Parameters}: set compression Method
-o{Directory}: set Output directory
-p{Password}: set Password
-r[-|0]: Recurse subdirectories
-scs{UTF-8 | WIN | DOS}: set charset for list files
-sfx[{name}]: Create SFX archive
-si[{name}]: read data from stdin
-slt: show technical information for l (List) command
-so: write data to stdout
-ssc[-]: set sensitive case mode
-ssw: compress shared files
-t{Type}: Set type of archive
-v{Size}[b|k|m|g]: Create volumes
-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options
-w[{path}]: assign Work directory. Empty path means a temporary directory
-x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames
-y: assume Yes on all queries

JZIP:

Per l’utilizzo di JZIP:

    – Scaricare l’applicativo;
– Installarlo andando sempre avanti;
– Se necessario inserire nella lista dei path anche la cartella di installazione di jzip;
– per comprire in formato zip digitare:

jzip -a -r [Archivio.ZIP] [Cartella da Comprimere]

Digitando jzip /? potrete visualizzare il seguente aiuto:

Usage: jzip […] 

a: Add Files to archive

d: Delete files from archive

e: Extract files from archive (wìthout using directory names)

u: Update files in archive

m: Move files to archive

f: Freshen archive

-a+: Add and remove archive attribute.

-bx{drive:path}: Changes temporary folder

-l{}: set compression level and method

-i[-]: Add files whose archive attribute is set. Use – to to leave the archive attribute on.

-j[hrs]: Do not store hidden, read only, and system attributes in the Zip file

-J[hrs]: Store hidden, read only, and system attributes in the Zip file

-w[hs]: Include hidden and system files in the zipping process

-W[hs]: Exclude hidden and system files in the zipping process (default)

-m[fu]: Move switches (freshen and update)

-k: Do not update archive file date.

-p|P: store folder names. Upper case option saves also 1 level.

-r: Recurse subdirectories. (To use with p options)

-s[password]: Specify a password.

-t[date]: Include files with a date equal to or more recent

-T[date]: Include files older than the date specified

-x{wildcard}: Exclude filenames

-et: Only test the Zip file

-eo: Don’t ask for overwrite files

-es: Skip older files

-e-: Don’t overwrite files

Freebyte Zip

Per l’utilizzo di Freebyte Zip:
– Scaricare l’applicativo;
– Eseguirlo, scomprimento i file in una cartella;
– per comprire in formato zip digitare:

fbzip -a -r -p [Archivio.ZIP] [Cartella da Comprimere]

Digitando fbzip /? potrete visualizzare il seguente aiuto:

Usage:
expand zipfile with path info:
-e -p zipfile “absolute output-directory path”

add file to zipfile with path info:
-a -p zipfile “absolute input-file path”

add directory to zipfile, recurse and with path info:
-a -r -p zipfile “absolute input-directory path”

Si potrebbe proseguire con la lista di questi software di compressione per molte pagine!

2- Software proprietario Microsoft per la compressione ZIP

I sistemi operativi Microsoft da XP e successive versione permettono la gestione grafica dei file compressi dello standard .ZIP, tuttavia non vi è inclusa una utility da poter utilizzare da linea di comando e quindi automatizzare una procedura di compressione.
In rete si trovano diversi script per creare file ZIP attraverso l’esecuzione di una procedura VBA.

Qui di seguito elenco due tipologie di vbscript per produrre file zip:
1. Riporto di seguito lo script per windows xp che produce file .ZIP.
2. Creare il file crea_zip.vbs e copiarci il seguente codice:

Option Explicit

Const FOF_CREATEPROGRESSDLG = &H0&
Dim sSourceFolder
Dim sArchiveFile
Dim oShell
Dim oZIP
Dim oSourceFolder

‘Settaggio Variabili
sSourceFolder = “C:\Test”
sArchiveFile = “C:\Zip_Out.ZIP

Dim oFSO
Dim oFile
Dim iFiles
Dim Fldr

Set oFSO = CreateObject( “Scripting.FileSystemObject” )
Set oFile = oFSO.OpenTextFile( sArchiveFile , 2, True )
oFile.Write “PK” & Chr(5) & Chr(6) & String( 18, Chr(0) )
oFile.Close
Set oFile = Nothing
Set oFSO = Nothing

iFiles = 0

With CreateObject(“Shell.Application”)

  ‘Copy the files to the compressed folder

.NameSpace(sArchiveFile).CopyHere .NameSpace( sSourceFolder ).Items, FOF_CREATEPROGRESSDLG

  iFiles = iFiles + .NameSpace( sSourceFolder ).Items.Count

  ‘Keep script waiting until Compressing is done
On Error Resume Next
Do Until .NameSpace( sArchiveFile ).Items.Count = iFiles
wScript.Sleep 1000
Loop
On Error GoTo 0

End With

Lo script esegue la creazione del file “C:\Zip_Out.ZIP” e lo riempie con i file della cartella “C:\Test”.

Tuttavia se all’interno di C:\Test risultano cartelle vuote si potrebbe generare un errore.


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


Copyright di Caterina Mezzapelle Part. I.V.A. 02413940814 - R.E.A. 191812