Formatul de fișier ZIP este o metodă eficientă de a reduce mărimea fișierelor, prin comprimarea lor într-un singur container. Această operațiune nu doar că eliberează spațiu valoros pe unitatea de stocare, dar oferă și un nivel suplimentar de protecție a datelor și simplifică distribuirea acestora. Vom explora cum se pot gestiona fișierele ZIP, folosind instrumentul PowerShell, prin operațiuni de arhivare și dezarhivare.
Crearea arhivelor ZIP prin PowerShell
Vom începe prin a învăța cum să adunăm mai multe fișiere într-o arhivă ZIP, folosind comanda Compress-Archive
. Această comandă necesită specificarea căilor către fișierele dorite (multiple căi pot fi separate prin virgulă) și indicarea locației unde se va crea arhiva.
Pentru a începe, deschideți PowerShell. Puteți face acest lucru căutând „PowerShell” în meniul Start. Apoi, introduceți următoarea comandă, având grijă să înlocuiți <pathtofiles>
și <pathtodestination>
cu locațiile corespunzătoare ale fișierelor de comprimat și respectiv a arhivei create:
Compress-Archive -LiteralPath <pathtofiles> -DestinationPath <pathtodestination>
Atunci când specificați destinația, nu uitați să includeți un nume pentru fișierul arhivă, altfel, PowerShell îl va salva automat ca un fișier „.zip” în locația indicată.
Notă: Dacă în calea fișierului există spații, este necesar să încadrați calea respectivă între ghilimele.
Alternativ, pentru a include tot conținutul unui folder, inclusiv subfolderele sale, utilizați următoarea structură de comandă, înlocuind <pathtofolder>
și <pathtodestination>
cu locațiile relevante:
Compress-Archive -LiteralPath <pathtofolder> -DestinationPath <pathtodestination>
În exemplul de mai sus, am folosit calea către un director ce include diverse fișiere și subfoldere. PowerShell va include în arhivă întregul conținut al directorului, inclusiv subfolderele.
Comanda Compress-Archive
are capacitatea de a folosi caractere wildcard, care extind considerabil flexibilitatea operațiunilor de arhivare. Folosind aceste caractere, puteți exclude directorul rădăcină, puteți alege să arhivați doar fișierele dintr-un anumit director sau să selectați toate fișierele de un tip specific. Pentru a beneficia de suportul wildcard, trebuie să folosiți parametrul -Path
, deoarece -LiteralPath
nu oferă această funcționalitate.
Compress-Archive -Path C:pathtofile* -DestinationPath C:pathtoarchive.zip
Înainte, am demonstrat cum să includem directorul de bază și toate fișierele și subdirectoarele acestuia într-o arhivă. Însă, dacă dorim să excludem directorul rădăcină, folosim wildcard-ul potrivit pentru a-l omite din arhivă. Adăugând un asterisc la finalul căii fișierului, vom specifica PowerShell să includă doar conținutul directorului rădăcină.
Compress-Archive -Path C:pathtofile*.jpg -DestinationPath C:pathtoarchive.zip
Astfel, dacă avem un director cu diverse tipuri de fișiere (.doc, .txt, .jpg, etc.) și dorim să comprimăm doar un anumit tip, putem specifica PowerShell să arhiveze doar acele fișiere. Iată cum arată comanda:
Compress-Archive -Path C:pathtofile*.* -DestinationPath C:pathtoarchive.zip
Notă: În acest caz, subdirectoarele și fișierele din directorul rădăcină nu sunt incluse în arhivă.
Pentru a crea o arhivă care comprimă doar fișierele din directorul rădăcină, inclusiv toate subdirectoarele, se va folosi wildcard-ul star-dot-star (*.*). Astfel, comanda arată în felul următor:
Compress-Archive -Path C:pathtofiles -Update -DestinationPath C:pathtoarchive.zip
Actualizarea arhivelor existente
Chiar și după crearea unei arhive, putem actualiza un fișier ZIP existent folosind parametrul -Update
. Această opțiune ne permite să înlocuim versiunile vechi ale fișierelor din arhivă cu versiuni mai recente, cu același nume, și să adăugăm fișiere noi create în directorul rădăcină.
Dezarhivarea fișierelor prin PowerShell
PowerShell oferă și capacitatea de a dezarhiva arhivele, procesul fiind chiar mai simplu decât cel de arhivare. Aveți nevoie doar de calea către fișierul sursă (arhiva ZIP) și locația unde doriți să extrageți datele. Deschideți PowerShell și introduceți comanda de mai jos, înlocuind <pathtozipfile>
și <pathtodestination>
cu valorile adecvate:
Expand-Archive -LiteralPath <pathtozipfile> -DestinationPath <pathtodestination>
Directorul de destinație specificat va fi umplut cu conținutul arhivei. Dacă directorul nu exista înainte, PowerShell îl va crea și va plasa fișierele extrase.
În mod implicit, dacă omiteți parametrul -DestinationPath
, PowerShell va dezarhiva conținutul în directorul curent și va crea un subdirector cu numele fișierului Zip.
De exemplu, dacă omitem -DestinationPath
, PowerShell va crea directorul „Arhive” în calea „C:\Users\brady” și va extrage fișierele în interiorul acestuia.
Dacă directorul există deja în locația de destinație, PowerShell va afișa o eroare la tentativa de dezarhivare. Însă, puteți forța PowerShell să suprascrie fișierele vechi folosind parametrul -Force
.
Vă recomandăm să utilizați parametrul -Force
doar în cazul în care fișierele vechi nu mai sunt necesare, deoarece acest lucru le va înlocui ireversibil.