Soms kan het handig zijn om op programmatische wijze ZIP-archieven te maken of bestanden uit bestaande archieven te halen. Windows PowerShell 5.0 heeft twee cmdlets toegevoegd om dat te doen. Met het cmdlet Compress-Archive kunt u nieuwe archieven maken van mappen of afzonderlijke bestanden en bestanden aan archieven toevoegen; Extract-Archive kan worden gebruikt om bestanden uit te pakken.
Als u PowerShell 5.0 of hoger nog niet op uw systemen hebt geïnstalleerd, kunt u de cmdlets gebruiken om bestanden uit te pakken.0 of later op uw systemen hebt geïnstalleerd, kunt u de nieuwste versie van het Windows Management Framework hier downloaden van de website van Microsoft.
PowerShell gebruiken om Zip-bestanden te maken
Laten we beginnen met het gebruik van PowerShell om bestanden in een nieuw zip-archief te comprimeren. Het enige wat je hoeft te doen is de -Path parameter te gebruiken om de map op te geven die je wilt comprimeren en de -DestinationPath parameter om de naam op te geven van het archief dat je wilt maken. Met het onderstaande commando wordt de map Invoices in de hoofdmap C gecomprimeerd en een archief met de naam Invoices.zip gemaakt in de map Archives:
Compress-Archive -Path C:\Invoices -DestinationPath C:\Archives\Invoices
Als alternatief kunnen we de bestanden in de map Invoices ook afzonderlijk comprimeren met -LiteralPath in plaats van -Path. Deze opdracht maakt een archief met alleen de twee bestanden die expliciet in de -LiteralPath parameter staan:
Compress-Archive -LiteralPath C:\ Invoices\File1.txt, C:\Invoices\File2.txt -DestinationPath C:\Archives\Invoices -Force
Merk op dat ik de -Force parameter heb toegevoegd om het archief te overschrijven dat ik met de eerste opdracht heb gemaakt. Zonder de -Force parameter kun je geen bestaande archieven overschrijven en zal PowerShell je vragen om in plaats daarvan bestanden aan het archief toe te voegen.
Om bestanden aan een archief toe te voegen, gebruik je de -Update parameter. De opdracht hieronder voegt alle bestanden in de map Facturen toe aan mijn bestaande archief Facturen.zip:
Compress-Archive -Path C:\Invoices\* -Update -DestinationPath C:\Archives\Invoices
Als optie kunt u de parameter -CompressionLevel gebruiken met een van de drie waarden: Optimaal, GeenCompressie of Snelst. Optimal is de standaard instelling als de -CompressionLevel parameter niet is ingesteld; het gebruikt de beste beschikbare compressie, maar het kan langer duren dan wanneer Fastest wordt gebruikt. Als u een archief zonder compressie wilt maken, gebruikt u de waarde NoCompression.
PowerShell gebruiken om bestanden uit te pakken
Bestanden uit een archief uitpakken is nog eenvoudiger dan er een maken. U hoeft alleen maar de naam van het archief en de doelmap voor de uitgepakte bestanden op te geven. Het onderstaande commando pakt de inhoud van het Invoices.zip archief uit naar een map met de naam InvoicesUnzipped met behulp van het Expand-Archive cmdlet.
Expand-Archive -LiteralPath C:\Archives\Invoices.Zip -DestinationPath C:\ InvoicesUnzipped
De map waarin u de bestanden wilt uitpakken hoeft niet te bestaan; Expand-Archive maakt de map automatisch aan als dat nodig is. Maar als de bestanden die u wilt uitpakken al bestaan in de doelmap, zal Expand-Archive een foutmelding geven. U kunt bestanden in de doelmap overschrijven door de parameter -Force aan het commando toe te voegen.