Powershell: Dezarhivarea și arhivarea fișierelor cu cmdleturile Compress-Archive și Expand-Archive

Configurare noua (How To)

Situatie

În Windows, puteți utiliza cmdlet-urile PowerShell încorporate pentru a comprima și decomprima fișiere din promptul de comandă sau din scripturile PS1. Începând cu PowerShell 5.0(introdus în Windows 10), cmdlet-urile Compress-Archive și Expand-Archive sunt disponibile pentru lucrul cu arhive ZIP.

Comanda Compress-Archive

Comanda Compress-Archive vă permite să creați un fișier arhivă comprimat dintr-unul sau mai multe fișiere sau foldere specificate.

Dacă doriți să comprimați un fișier și să îl adăugați la o arhivă ZIP, utilizați comanda:

Compress-Archive -DestinationPath C:\temp\applog.zip -Path ‘C:\temp\app.log’ -Force

Nota bene. Este necesar să se utilizeze ghilimele în jurul căii fișierului dacă numele fișierului sursă sau destinație conține un spațiu.

Opțiuni pentru cmdletul Compress-Archive

  • DestinationPath – calea către arhiva ZIP
  • Path – numele fișierului sau folderului pe care doriți să îl comprimați
  • Force – suprascrieți fișierul dacă există deja o arhivă cu același nume
  • CompressionLevel – vă permite să setați nivelul de compresie. Valori posibile: NoCompression, Fastest și Optimal(utilizat în mod implicit)

Dacă doriți să comprimați numai conținutul directorului (inclusiv subfolderele), dar nu și directorul în sine, specificați:

-Path C:\temp\*

Dimensiunea maximă a arhivei ZIP

Rețineți că dimensiunea maximă a unei arhive ZIP care poate fi creată utilizând cmdletul Compress-Archive este de 2 GB.

Aceasta este o limitare a API-ului Microsoft .NET subiacent (clasa System.IO.Compression.ZipArchive). Dacă încercați să creați un fișier arhivă ZIP mai mare de 2 GB, cmdletul Compress-Archive va returna o eroare: MethodInvocationException: Exception calling “Write” with “3” argument(s): “Stream was too long.”

Arhivați mai multe directoare simultan

Pentru a arhiva mai multe directoare simultan, specificați o listă de foldere separate prin virgule în parametrul Path:

Compress-Archive -DestinationPath C:\arhive.zip -Path C:\ps\, C:\temp\

Adăugați un fișier la o arhivă ZIP existentă

Opțiunea Actualizare vă permite să adăugați un fișier la o arhivă ZIP existentă:

Compress-Archive -DestinationPath C:\arhive.zip -Path C:\temp\test.html -Update

Comprimați toate fișierele cu extensii specifice dintr-un folder

Get-ChildItem -Path C:\Temp\ -Include “*.txt”,”*.log” -Recurse| Compress-Archive -DestinationPath C:\txt_log.zip

Extrageți arhiva cu cmdletul Expand-Archive

Expand-Archive -Path C:\txt_log.zip -DestinationPath C:\Unzipped

Nota bene: Adăugați parametrul -Force dacă doriți să suprascrieți fișierele din directorul de destinație.

Solutie

Tip solutie

Permanent

Voteaza

(12 din 22 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?