Come estrarre più file ZIP contemporaneamente su Windows usando PowerShell
Ti è mai capitato di scaricare decine di file .zip (magari backup, foto o documenti di lavoro) e doverli estrarre uno ad uno? Fare clic destro, selezionare “Estrai tutto…”, confermare la cartella e ripetere l’operazione per ogni singolo archivio è un’operazione noiosa e che fa perdere un sacco di tempo.
Se usi Windows, non hai bisogno di scaricare programmi esterni o script complicati per automatizzare questo processo. Hai già a disposizione uno strumento potentissimo e integrato nel sistema: PowerShell.
In questo articolo vedremo come scompattare decine o centinaia di archivi ZIP con una singola riga di comando.
La procedura passo dopo passo
Il nostro obiettivo è estrarre ogni file .zip all’interno di una sua cartella dedicata, in modo da mantenere tutto il tuo spazio di lavoro perfettamente in ordine e non mischiare i file.
Ecco come fare:
- Apri la cartella dei tuoi ZIP: Naviga usando Esplora Risorse (la normale finestra di Windows) fino alla cartella che contiene tutti i file compressi.
- Avvia PowerShell: Fai clic destro in un punto vuoto della cartella e seleziona “Apri nel terminale” (su Windows 11). Se usi Windows 10, puoi tenere premuto il tasto
Shiftsulla tastiera, fare clic destro e selezionare “Apri finestra PowerShell qui”. - Lancia il comando magico: Copia la riga di codice che trovi qui sotto, incollala nella finestra blu di PowerShell e premi
Invio.
PowerShell
Get-ChildItem *.zip | ForEach-Object { Expand-Archive $_.FullName -DestinationPath $_.BaseName }
Fatto! Ora vedrai il terminale lavorare per te, creando magicamente una nuova cartella per ogni file ZIP ed estraendone il contenuto all’interno.
Come funziona questo comando?
Se ti piace capire cosa succede “sotto il cofano” del tuo computer, ecco una rapida spiegazione di come è composto questo script:
Get-ChildItem *.zip: Dice a PowerShell di guardare nella cartella corrente e selezionare esclusivamente i file che terminano con l’estensione.zip.| ForEach-Object: Prende la lista di file trovata nel passaggio precedente e dice al sistema: “Per ogni file che hai trovato, esegui l’azione seguente”.Expand-Archive $_.FullName: È il comando effettivo che si occupa di decomprimere (estrarre) il singolo file.-DestinationPath $_.BaseName: Questa è la parte più intelligente dello script. Dice a PowerShell di creare una cartella di destinazione che ha esattamente lo stesso nome del file originale (escludendo però la scritta “.zip”).
💡 Il vero vantaggio: L’uso della variabile
BaseNamesalva la tua cartella dal caos. Se hai 50 file ZIP e li estrai tutti assieme senza creare sottocartelle, potresti ritrovarti con migliaia di documenti sparsi ovunque. Questo comando mantiene un’organizzazione impeccabile.