Η μορφή αρχείου ZIP μειώνει το μέγεθος των αρχείων συμπιέζοντάς τα σε ένα μόνο αρχείο. Αυτή η διαδικασία εξοικονομεί χώρο στο δίσκο, κρυπτογραφεί δεδομένα και διευκολύνει την κοινή χρήση αρχείων με άλλους. Δείτε πώς να κάνετε συμπίεση και αποσυμπίεση αρχείων χρησιμοποιώντας το PowerShell.
Τρόπος συμπίεσης αρχείων χρησιμοποιώντας το PowerShell
Ας ξεκινήσουμε με τη συμπίεση ορισμένων αρχείων σε ένα αρχείο ZIP χρησιμοποιώντας το cmdlet Compress-Archive. Παίρνει τη διαδρομή προς όλα τα αρχεία που θέλετε να συμπιέσετε—πολλά αρχεία χωρίζονται με κόμμα—και τα αρχειοθετεί στον προορισμό που έχετε καθορίσει.
Αρχικά, ανοίξτε το PowerShell αναζητώντας το από το μενού Έναρξη και, στη συνέχεια, πληκτρολογώντας την ακόλουθη εντολή, αντικαθιστώντας
Compress-Archive -LiteralPath-DestinationPath
Όταν παρέχετε τη διαδρομή προορισμού, φροντίστε να δώσετε στο αρχείο αρχειοθέτησης ένα όνομα ή το PowerShell θα το αποθηκεύσει ως “.zip” όπου καθορίζετε.
Σημείωση: Οι εισαγωγές γύρω από τη διαδρομή είναι απαραίτητες μόνο όταν η διαδρομή αρχείου περιέχει κενό.
Εναλλακτικά, για να κάνετε συμπίεση ολόκληρου του περιεχομένου ενός φακέλου —και όλων των υποφακέλων του— μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή, αντικαθιστώντας
Compress-Archive -LiteralPath-DestinationPath
Στο προηγούμενο παράδειγμα, βάλαμε τη διαδρομή σε έναν κατάλογο με πολλά αρχεία και φακέλους χωρίς να προσδιορίσουμε μεμονωμένα αρχεία. Το PowerShell παίρνει τα πάντα μέσα στον ριζικό κατάλογο και τον συμπιέζει, τους υποφακέλους και όλα.
Το cmdlet Compress-Archive σάς επιτρέπει να χρησιμοποιήσετε έναν χαρακτήρα μπαλαντέρ
για να επεκτείνετε ακόμη περισσότερο τη λειτουργικότητα. Όταν χρησιμοποιείτε τον χαρακτήρα, μπορείτε να εξαιρέσετε τον ριζικό κατάλογο, να συμπιέσετε μόνο αρχεία σε έναν κατάλογο ή να επιλέξετε όλα τα αρχεία ενός συγκεκριμένου τύπου. Για να χρησιμοποιήσετε έναν χαρακτήρα μπαλαντέρ με το Compress-Archive, πρέπει να χρησιμοποιήσετε την παράμετρο -Path, καθώς το -LiteralPath δεν τους αποδέχεται.
Compress-Archive -Path C:pathtofile* -DestinationPath C:pathtoarchive.zip
Παραπάνω, καλύψαμε πώς να συμπεριλάβετε τον ριζικό κατάλογο και όλα τα αρχεία και τους υποκαταλόγους του κατά τη δημιουργία ενός αρχείου αρχειοθέτησης. Ωστόσο, εάν θέλετε να εξαιρέσετε τον ριζικό φάκελο από το αρχείο Zip, μπορείτε να χρησιμοποιήσετε έναν χαρακτήρα μπαλαντέρ για να τον παραλείψετε από το αρχείο. Προσθέτοντας έναν αστερίσκο
Compress-Archive -Path C:pathtofile*.jpg -DestinationPath C:pathtoarchive.zip
μέχρι το τέλος της διαδρομής του αρχείου, λέτε στο PowerShell μόνο να αρπάξει ό,τι βρίσκεται μέσα στον ριζικό κατάλογο. Θα πρέπει να μοιάζει κάπως έτσι:
Στη συνέχεια, ας πούμε ότι έχετε έναν φάκελο με μια δέσμη διαφορετικών τύπων αρχείων (.doc, .txt, .jpg, κ.λπ.) αλλά θέλετε να συμπιέσετε όλους μόνο ενός τύπου. Μπορείτε να πείτε στο PowerShell να τα αρχειοθετήσει χωρίς να αγγίξετε ρητά τα άλλα. Η σημείωση της εντολής θα μοιάζει με αυτό:
Compress-Archive -Path C:pathtofile*.* -DestinationPath C:pathtoarchive.zip
Σημείωση: Οι υποκατάλογοι και τα αρχεία του ριζικού φακέλου δεν περιλαμβάνονται στο αρχείο με αυτήν τη μέθοδο.
Τέλος, εάν θέλετε ένα αρχείο που συμπιέζει μόνο αρχεία στον ριζικό κατάλογο—και όλους τους υποκαταλόγους του—θα χρησιμοποιούσατε τον χαρακτήρα μπαλαντέρ star-dot-star (*.*) για να τα συμπιέσετε. Θα φαινόταν κάπως έτσι:
Compress-Archive -Path C:pathtofiles -Update -DestinationPath C:pathtoarchive.zip
Σημείωση: Οι υποκατάλογοι και τα αρχεία του ριζικού φακέλου δεν περιλαμβάνονται στο αρχείο με αυτήν τη μέθοδο.
Ακόμη και μετά την ολοκλήρωση της αρχειοθέτησης, μπορείτε να ενημερώσετε ένα υπάρχον συμπιεσμένο αρχείο με τη χρήση της παραμέτρου -Update. Σας επιτρέπει να αντικαταστήσετε παλαιότερες εκδόσεις αρχείων στο αρχείο με νεότερες που έχουν τα ίδια ονόματα και να προσθέσετε αρχεία που έχουν δημιουργηθεί στον ριζικό κατάλογο. Θα μοιάζει κάπως έτσι:
Πώς να αποσυμπιέσετε αρχεία χρησιμοποιώντας το PowerShell
Expand-Archive -LiteralPath-DestinationPath
και
με τη διαδρομή προς τα αρχεία που θέλετε να συμπιέσετε και το όνομα και τον φάκελο στον οποίο θέλετε να μεταβείτε, αντίστοιχα:
Ο φάκελος προορισμού που έχει καθοριστεί για εξαγωγή των αρχείων θα συμπληρωθεί με τα περιεχόμενα του αρχείου. Εάν ο φάκελος δεν υπήρχε πριν από την αποσυμπίεση, το PowerShell θα δημιουργήσει τον φάκελο και θα τοποθετήσει τα περιεχόμενα σε αυτόν πριν αποσυμπιεστεί.
Από προεπιλογή, εάν παραλείψετε την παράμετρο -DestinationPath, το PowerShell θα αποσυμπιέσει τα περιεχόμενα στον τρέχοντα ριζικό κατάλογο και θα χρησιμοποιήσει το όνομα του αρχείου Zip για να δημιουργήσει έναν νέο φάκελο.
Στο προηγούμενο παράδειγμα, αν αφήσουμε έξω το -DestinationPath , το PowerShell θα δημιουργήσει τον φάκελο “Archive” στη διαδρομή “C:Usersbrady” και θα εξαγάγει τα αρχεία από το αρχείο στο φάκελο.
Εάν ο φάκελος υπάρχει ήδη στον προορισμό, το PowerShell θα επιστρέψει ένα σφάλμα όταν προσπαθήσει να αποσυμπιέσει τα αρχεία. Ωστόσο, μπορείτε να αναγκάσετε το PowerShell να αντικαταστήσει τα δεδομένα με τα νέα χρησιμοποιώντας την παράμετρο -Force.
Θα πρέπει να χρησιμοποιείτε την παράμετρο -Force μόνο εάν τα παλιά αρχεία δεν χρειάζονται πλέον, καθώς αυτό θα αντικαταστήσει μη αναστρέψιμα τα αρχεία στον υπολογιστή σας.