Come comprimere (e decomprimere) i file utilizzando PowerShell

Il formato di file ZIP riduce le dimensioni dei file comprimendoli in un unico file. Questo processo consente di risparmiare spazio su disco, crittografa i dati e semplifica la condivisione di file con altri. Ecco come comprimere e decomprimere i file utilizzando PowerShell.

Come comprimere i file utilizzando PowerShell

Cominciamo comprimendo alcuni file in un archivio di file ZIP utilizzando il cmdlet Compress-Archive. Prende il percorso di tutti i file che si desidera comprimere (più file sono separati da una virgola) e li archivia nella destinazione specificata.

Innanzitutto, apri PowerShell cercandolo dal menu Start e quindi digitando il seguente comando, sostituendo e con il percorso dei file che vuoi comprimere e il nome e la cartella che vuoi che vada, rispettivamente:

Compress-Archive -LiteralPath  -DestinationPath 

Comprimi alcuni file in PowerShell.

Quando fornisci il percorso di destinazione, assicurati di assegnare un nome al file di archivio o PowerShell lo salverà come “.zip” dove specificato.

Nota: le virgolette attorno al percorso sono necessarie solo quando il percorso del file contiene uno spazio.

In alternativa, per comprimere l’intero contenuto di una cartella e tutte le sue sottocartelle, puoi utilizzare il seguente comando, sostituendo e con il percorso dei file che vuoi comprimere e il nome e la cartella in cui vuoi che vada, rispettivamente:

Compress-Archive -LiteralPath  -DestinationPath 

Comprimi un'intera cartella e tutti i suoi contenuti.

Nell’esempio precedente, abbiamo inserito il percorso di una directory con più file e cartelle senza specificare i singoli file. PowerShell prende tutto all’interno della directory principale e lo comprime, sottocartelle e tutto.

Il cmdlet Compress-Archive consente di utilizzare un carattere jolly

per espandere ulteriormente la funzionalità. Quando si utilizza il carattere, è possibile escludere la directory principale, comprimere solo i file in una directory o scegliere tutti i file di un tipo specifico. Per utilizzare un carattere jolly con Compress-Archive, è necessario utilizzare invece il parametro -Path, poiché -LiteralPath non li accetta.

Compress-Archive -Path C:pathtofile* -DestinationPath C:pathtoarchive.zip

Sopra, abbiamo spiegato come includere la directory principale e tutti i suoi file e sottodirectory durante la creazione di un file di archivio.  Tuttavia, se si desidera escludere la cartella principale dal file Zip, è possibile utilizzare un carattere jolly per ometterla dall'archivio.  Aggiungendo un asterisco

alla fine del percorso del file, dici a PowerShell solo di afferrare cosa c’è dentro la directory principale. Dovrebbe assomigliare a qualcosa di simile a questo:

Compress-Archive -Path C:pathtofile*.jpg -DestinationPath C:pathtoarchive.zip

Comprimi l'intero contenuto di una cartella, senza la cartella principale stessa.

Quindi, supponi di avere una cartella con un mucchio di diversi tipi di file (.doc, .txt, .jpg, ecc.) Ma vuoi comprimere solo tutti di un tipo. Puoi dire a PowerShell di archiviarli senza toccare gli altri esplicitamente. La notazione del comando sarebbe simile a questa:

Comprimi solo tipi di file specifici da una cartella.

Compress-Archive -Path C:pathtofile*.* -DestinationPath C:pathtoarchive.zip

Nota: le sottodirectory e i file della cartella principale non sono inclusi nell'archivio con questo metodo.

Infine, se si desidera un archivio che comprima solo i file nella directory principale e in tutte le sue sottodirectory, è necessario utilizzare il carattere jolly stella-punto-stella (*. *) Per comprimerli. Sarebbe simile a questo:

Comprimi solo i file dalla cartella principale con l’uso della widlcard star-dot-star (*. *).

Compress-Archive -Path C:pathtofiles -Update -DestinationPath C:pathtoarchive.zip

Nota: le sottodirectory e i file della cartella principale non sono inclusi nell'archivio con questo metodo.

Anche dopo che l’archivio è stato completato, è possibile aggiornare un file zippato esistente utilizzando il parametro -Update. Ti consente di sostituire le versioni di file precedenti nell’archivio con quelle più recenti con lo stesso nome e di aggiungere file che sono stati creati nella directory principale. Assomiglierà a questo:

Aggiorna un file zip già esistente con l’uso del parametro -Update.

Come decomprimere i file utilizzando PowerShell Oltre a poter comprimere file e cartelle, PowerShell ha la capacità di decomprimere archivi. Il processo è ancora più semplice che comprimerli; tutto ciò di cui hai bisogno è il file sorgente e una destinazione per i dati pronti per essere decompressi. Apri PowerShell e digita il seguente comando, sostituendo

Expand-Archive -LiteralPath  -DestinationPath 

e

con il percorso dei file che vuoi comprimere e il nome e la cartella in cui vuoi che vada, rispettivamente:

Decomprimere un archivio con il cmdlet Expand-Archive.

La cartella di destinazione specificata in cui estrarre i file verrà popolata con il contenuto dell’archivio. Se la cartella non esisteva prima della decompressione, PowerShell creerà la cartella e inserirà il contenuto in essa prima della decompressione.

Per impostazione predefinita, se si esclude il parametro -DestinationPath, PowerShell decomprimerà il contenuto nella directory principale corrente e utilizzerà il nome del file Zip per creare una nuova cartella.

Nell’esempio precedente, se tralasciamo -DestinationPath, PowerShell creerà la cartella “Archive” nel percorso “C: Usersbrady” ed estrarrà i file dall’archivio nella cartella.

Se si esclude il parametro -DestinationPath, PowerShell estrae lo zip nella directory attualmente selezionata.

Se la cartella esiste già nella destinazione, PowerShell restituirà un errore quando tenta di decomprimere i file. Tuttavia, puoi forzare PowerShell a sovrascrivere i dati con quelli nuovi usando il parametro -Force.

È necessario utilizzare il parametro -Force solo se i vecchi file non sono più necessari, poiché ciò sostituirà irreversibilmente i file sul computer.