Come zippare (e decomprimere) i file usando PowerShell

  • Brady Gavin

    @bradyjgavin

  • June 22, 2020, 11:23am EDT

Il formato ZIP riduce la dimensione dei file comprimendoli in un unico file. Questo processo risparmia spazio su disco, cripta i dati e rende facile condividere i file con gli altri. Ecco come comprimere e decomprimere i file usando PowerShell.

Come zippare i file usando PowerShell

Iniziamo comprimendo alcuni file in un archivio ZIP usando il cmdlet Compress-Archive. Prende il percorso di qualsiasi file che vuoi comprimere – i file multipli sono separati da una virgola – e li archivia nella destinazione specificata.

Prima di tutto, aprite PowerShell cercandolo dal menu Start e poi digitate il seguente comando, sostituendo <PathToFiles> e <PathToDestination> con il percorso dei file che volete comprimere e il nome e la cartella in cui volete che vada, rispettivamente:

Compress-Archive -LiteralPath <PathToFiles> -DestinationPath <PathToDestination>
Pubblicità

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

Nota: Le virgolette intorno 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 usare il seguente comando, sostituendo <PathToFolder> e <PathToDestination> con il percorso dei file che vuoi comprimere e il nome e la cartella in cui vuoi che vada, rispettivamente:

Compress-Archive -LiteralPath <PathToFolder> -DestinationPath <PathToDestination>

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

Pubblicità

La cmdlet Compress-Archive ti permette di usare un carattere jolly (*) per espandere ulteriormente la funzionalità. Quando usi il carattere, puoi escludere la directory principale, comprimere solo i file in una directory, o scegliere tutti i file di un tipo specifico. Per usare un carattere jolly con Compress-Archive, devi usare il parametro -Path invece, poiché -LiteralPath non li accetta.

In precedenza, abbiamo spiegato come includere la directory principale e tutti i suoi file e sottodirectory quando si crea un file di archivio. Tuttavia, se vuoi escludere la cartella principale dal file Zip, puoi usare un carattere jolly per ometterla dall’archivio. Aggiungendo un asterisco (*) alla fine del percorso del file, dici a PowerShell di prendere solo ciò che è dentro la cartella principale. Dovrebbe assomigliare a questo:

Compress-Archive -Path C:\path\to\file\* -DestinationPath C:\path\to\archive.zip

In seguito, diciamo che hai una cartella con diversi tipi di file (.doc, .txt, .jpg, ecc.) ma vuoi comprimere solo un tipo. Puoi dire a PowerShell di archiviarli senza toccare gli altri esplicitamente. La notazione del comando sarebbe così:

Compress-Archive -Path C:\path\to\file\*.jpg -DestinationPath C:\path\to\archive.zip

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

Pubblicità

Infine, se vuoi un archivio che comprima solo i file della cartella principale e tutte le sue sottodirectory, devi usare il carattere jolly stella-punto-stella (*.*) per comprimerli. Sarebbe qualcosa del genere:

Compress-Archive -Path C:\path\to\file\*.* -DestinationPath C:\path\to\archive.zip

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

Anche dopo che l’archivio è completo, puoi aggiornare un file zippato esistente con l’uso del parametro -Update. Esso permette di sostituire le vecchie versioni dei file nell’archivio con quelle più recenti che hanno gli stessi nomi, e di aggiungere i file che sono stati creati nella directory principale. Sarà qualcosa di simile a questo:

Compress-Archive -Path C:\path\to\files -Update -DestinationPath C:\path\to\archive.zip

Come decomprimere i file usando PowerShell

Oltre ad essere in grado di zippare file e cartelle, PowerShell ha la capacità di decomprimere gli archivi. Il processo è ancora più facile che comprimerli; tutto ciò di cui hai bisogno è il file di origine e una destinazione per i dati pronti da decomprimere.

Pubblicità

Aprire PowerShell e digitare il seguente comando, sostituendo <PathToZipFile> e <PathToDestination> con il percorso dei file che si desidera comprimere e il nome e la cartella in cui si desidera andare, rispettivamente:

Expand-Archive -LiteralPath <PathToZipFile> -DestinationPath <PathToDestination>

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

Di default, se si tralascia il parametro -DestinationPath, PowerShell decomprimerà il contenuto nella directory principale corrente e userà il nome del file Zip per creare una nuova cartella.

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

Pubblicità

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

Si dovrebbe usare il parametro -Force solo se i vecchi file non sono più necessari, poiché questo sostituirà irreversibilmente i file sul tuo computer.

Brady Gavin
Brady Gavin è stato immerso nella tecnologia per 15 anni e ha scritto oltre 150 tutorial e spiegazioni dettagliate. Ha trattato di tutto, dagli hack del registro di Windows 10 ai suggerimenti per il browser Chrome. Brady ha un diploma in informatica del Camosun College di Victoria, BC. Leggi la biografia completa “

Lascia un commento

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