Articles

Usare PowerShell per creare archivi ZIP e decomprimere file

Posted on

A volte può essere utile creare programmaticamente archivi zip o estrarre file da archivi esistenti. Windows PowerShell 5.0 ha aggiunto due cmdlets per fare proprio questo. Il cmdlet Compress-Archive permette di creare nuovi archivi da cartelle o file individuali e di aggiungere file agli archivi; Extract-Archive può essere usato per decomprimere i file.

Se non avete già installato PowerShell 5..0 o successivo installato sui vostri sistemi, potete scaricare l’ultima versione di Windows Management Framework dal sito di Microsoft qui.

Usare PowerShell per creare file zip

Iniziamo ad usare PowerShell per comprimere i file in un nuovo archivio zip. Tutto quello che devi fare è usare il parametro -Path per specificare la cartella che vuoi comprimere e il parametro -DestinationPath per specificare il nome dell’archivio che vuoi creare. Il comando seguente comprimerà la cartella Invoices nella directory principale C e creerà un archivio chiamato Invoices.zip nella cartella Archives:

Compress-Archive -Path C:\Invoices -DestinationPath C:\Archives\Invoices

In alternativa, potremmo comprimere i file nella cartella Invoices individualmente usando -LiteralPath invece di -Path. Questo comando crea un archivio con solo i due file esplicitamente elencati nel parametro -LiteralPath:

Compress-Archive -LiteralPath C:\ Invoices\File1.txt, C:\Invoices\File2.txt -DestinationPath C:\Archives\Invoices -Force

Nota che ho aggiunto il parametro -Force per sovrascrivere l’archivio che ho creato con il primo comando. Senza il parametro -Force, non puoi sovrascrivere gli archivi esistenti e PowerShell ti chiederà invece di aggiungere file all’archivio.

Per aggiungere file ad un archivio, usa il parametro -Update. Il comando sottostante aggiunge tutti i file nella cartella Invoices al mio archivio Invoices.zip esistente:

Compress-Archive -Path C:\Invoices\* -Update -DestinationPath C:\Archives\Invoices

Opzionalmente, puoi usare il parametro -CompressionLevel con uno dei tre valori: Optimal, NoCompression o Fastest. Optimal è l’impostazione predefinita se il parametro -CompressionLevel non è impostato; utilizza la migliore compressione disponibile, ma potrebbe richiedere più tempo di Fastest. Per creare un archivio senza compressione, usa il valore NoCompression.

Usare PowerShell per decomprimere i file

Estrarre i file da un archivio è ancora più facile che crearne uno. Tutto quello che devi fare è specificare il nome dell’archivio e la cartella di destinazione per i file decompressi. Il comando sottostante estrae il contenuto dell’archivio Invoices.zip in una cartella chiamata InvoicesUnzipped usando la cmdlet Expand-Archive.

Expand-Archive -LiteralPath C:\Archives\Invoices.Zip -DestinationPath C:\ InvoicesUnzipped

La cartella in cui si desidera decomprimere i file non deve necessariamente esistere; Expand-Archive creerà automaticamente la cartella se necessario. Ma se i file che vuoi decomprimere esistono già nella cartella di destinazione, Expand-Archive restituirà un errore. Puoi sovrascrivere i file nella cartella di destinazione aggiungendo il parametro -Force al comando.

Consulente e autore IT specializzato in tecnologie di gestione e sicurezza. Russell ha più di 15 anni di esperienza nell’IT, ha scritto un libro sulla sicurezza di Windows ed è coautore di un testo per la serie MOAC (Official Academic Course) di Microsoft.

Lascia un commento

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