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.