Compress-Archive
Skapar ett komprimerat arkiv, eller en zippad fil, från angivna filer och kataloger.
Syntax
Path (Standard)
Compress-Archive
    [-Path] <String[]>
    [-DestinationPath] <String>
    [-CompressionLevel <String>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
		PathWithUpdate
	  
	Compress-Archive
    [-Path] <String[]>
    [-DestinationPath] <String>
    -Update
    [-CompressionLevel <String>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
		PathWithForce
	  
	Compress-Archive
    [-Path] <String[]>
    [-DestinationPath] <String>
    -Force
    [-CompressionLevel <String>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
		LiteralPathWithUpdate
	   
	Compress-Archive
    [-DestinationPath] <String>
    -LiteralPath <String[]>
    -Update
    [-CompressionLevel <String>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
		LiteralPathWithForce
	   
	Compress-Archive
    [-DestinationPath] <String>
    -LiteralPath <String[]>
    -Force
    [-CompressionLevel <String>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
		LiteralPath
	 
	Compress-Archive
    [-DestinationPath] <String>
    -LiteralPath <String[]>
    [-CompressionLevel <String>]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Description
Cmdleten Compress-Archive skapar en komprimerad eller zippad arkivfil från en eller flera angivna filer eller kataloger. Ett arkiv paket flera filer, med valfri komprimering, i en enda zippad fil för enklare distribution och lagring. En arkivfil kan komprimeras med hjälp av komprimeringsalgoritmen som anges av parametern CompressionLevel .
Cmdleten Compress-Archive använder API:et System.IO.Compression.ZipArchive för att komprimera filer.
API:et begränsar den maximala filstorleken till 2 GB. Mer information finns i System.IO.Compression.ZipArchive.
Anmärkning
Cmdleten Compress-Archive ignorerar dolda filer och mappar när du skapar eller uppdaterar arkivfilen. På datorer som inte är Windows innehåller detta filer och mappar med namn som börjar med periodtecknet (.).
Om du vill se till att dolda filer och mappar komprimeras till arkivet använder du .NET-API:et i stället.
Vissa exempel använder splatting för att minska radlängden för kodexemplen. Mer information finns i about_Splatting.
Exempel
Exempel 1: Komprimera filer för att skapa en arkivfil
Det här exemplet komprimerar filer från olika kataloger och skapar en arkivfil. Ett jokertecken används för att hämta alla filer med ett visst filnamnstillägg. Det finns ingen katalogstruktur i arkivfilen eftersom sökvägen endast anger filnamn.
$compress = @{
  Path = "C:\Reference\Draftdoc.docx", "C:\Reference\Images\*.vsd"
  CompressionLevel = "Fastest"
  DestinationPath = "C:\Archives\Draft.zip"
}
Compress-Archive @compress
Parametern Path accepterar specifika filnamn och filnamn med jokertecken, *.vsd. Sökvägen  använder en kommaavgränsad lista för att hämta filer från olika kataloger. Komprimeringsnivån är snabbast för att minska bearbetningstiden. Parametern DestinationPath anger platsen för Draft.zip filen. Filen Draft.zip innehåller Draftdoc.docx och alla filer med ett .vsd tillägg.
Exempel 2: Komprimera filer med hjälp av en LiteralPath 
	Det här exemplet komprimerar specifika namngivna filer och skapar en ny arkivfil. Det finns ingen katalogstruktur i arkivfilen eftersom sökvägen endast anger filnamn.
$compress = @{
LiteralPath= "C:\Reference\Draft Doc.docx", "C:\Reference\Images\diagram2.vsd"
CompressionLevel = "Fastest"
DestinationPath = "C:\Archives\Draft.zip"
}
Compress-Archive @compress
Absolut sökväg och filnamn används eftersom parametern LiteralPath inte accepterar jokertecken. Sökvägen  använder en kommaavgränsad lista för att hämta filer från olika kataloger. Komprimeringsnivån är snabbast för att minska bearbetningstiden. Parametern DestinationPath anger platsen för Draft.zip filen. Filen Draft.zip innehåller Draftdoc.docx bara och diagram2.vsd.
Exempel 3: Komprimera en katalog som innehåller rotkatalogen
Det här exemplet komprimerar en katalog och skapar en arkivfil som innehåller rotkatalogen och alla dess filer och underkataloger. Arkivfilen har en katalogstruktur eftersom sökvägen anger en rotkatalog.
Compress-Archive -Path C:\Reference -DestinationPath C:\Archives\Draft.zip
              Compress-Archive använder parametern Path för att ange rotkatalogen, C:\Reference. Parametern DestinationPath anger platsen för arkivfilen. Arkivet Draft.zip innehåller rotkatalogen Reference och alla dess filer och underkataloger.
Exempel 4: Komprimera en katalog som exkluderar rotkatalogen
Det här exemplet komprimerar en katalog och skapar en arkivfil som exkluderar rotkatalogen eftersom sökvägen använder ett asterisk* () jokertecken. Arkivet innehåller en katalogstruktur som innehåller rotkatalogens filer och underkataloger.
Compress-Archive -Path C:\Reference\* -DestinationPath C:\Archives\Draft.zip
              Compress-Archive använder parametern Path för att ange rotkatalogen C:\Reference med ett asterisk* () jokertecken. Parametern DestinationPath anger platsen för arkivfilen. Arkivet Draft.zip innehåller rotkatalogens filer och underkataloger. Rotkatalogen Reference undantas från arkivet.
Exempel 5: Komprimera endast filerna i en rotkatalog
Det här exemplet komprimerar endast filerna i en rotkatalog och skapar en arkivfil. Det finns ingen katalogstruktur i arkivet eftersom endast filer komprimeras.
Compress-Archive -Path C:\Reference\*.* -DestinationPath C:\Archives\Draft.zip
              Compress-Archive använder parametern Sökväg för att ange rotkatalogen med C:\Reference jokerteckenet star-dot-star (*.*). Parametern DestinationPath anger platsen för arkivfilen. Arkivet Draft.zip innehåller bara rotkatalogens Reference filer och rotkatalogen undantas.
Exempel 6: Använd pipelinen för att arkivera filer
Det här exemplet skickar filer nedåt i pipelinen för att skapa ett arkiv. Det finns ingen katalogstruktur i arkivfilen eftersom sökvägen endast anger filnamn.
Get-ChildItem -Path C:\Reference\Afile.txt, C:\Reference\Images\Bfile.txt |
  Compress-Archive -DestinationPath C:\Archives\PipelineFiles.zip
              Get-ChildItem använder parametern Path för att ange två filer från olika kataloger. Varje fil representeras av ett FileInfo-objekt och skickas ned i pipelinen till Compress-Archive.
De två angivna filerna arkiveras i PipelineFiles.zip.
Exempel 7: Använd pipelinen för att arkivera en katalog
Det här exemplet skickar en katalog nedåt i pipelinen för att skapa ett arkiv. Filer skickas som FileInfo-objekt och kataloger som DirectoryInfo-objekt . Arkivets katalogstruktur innehåller inte rotkatalogen, men dess filer och underkataloger ingår i arkivet.
Get-ChildItem -Path C:\LogFiles |
    Compress-Archive -DestinationPath C:\Archives\PipelineDir.zip
              Get-ChildItem använder parametern Path för att ange rotkatalogen C:\LogFiles . Varje FileInfo - och DirectoryInfo-objekt skickas ned i pipelinen.
              Compress-Archive lägger till varje objekt i arkivet PipelineDir.zip . Parametern Path har inte angetts eftersom pipelineobjekten tas emot i parameterposition 0.
Exempel 8: Hur rekursion kan påverka arkiv
Det här exemplet visar hur rekursion kan duplicera filer i ditt arkiv. Om du till exempel använder Get-ChildItem med parametern Recurse . Som rekursionsprocesser skickas varje FileInfo - och DirectoryInfo-objekt ned pipelinen och läggs till i arkivet.
Get-ChildItem -Path C:\TestLog -Recurse |
  Compress-Archive -DestinationPath C:\Archives\PipelineRecurse.zip
Katalogen C:\TestLog innehåller inga filer. Den innehåller en underkatalog med namnet testsub som innehåller testlog.txt filen.
              Get-ChildItem använder parametern Path för att ange rotkatalogen, C:\TestLog. Parametern Recurse bearbetar filerna och katalogerna. Ett DirectoryInfo-objekt skapas för testsub och ett FileInfo-objekttestlog.txt.
Varje objekt skickas ned i pipelinen till Compress-Archive. 
              DestinationPath anger platsen för arkivfilen. Parametern Path har inte angetts eftersom pipelineobjekten tas emot i parameterposition 0.
Följande sammanfattning beskriver arkivets PipelineRecurse.zip innehåll som innehåller en duplicerad fil:
- DirectoryInfo-objektet  skapar testsubkatalogen och innehållertestlog.txtfilen, vilket återspeglar den ursprungliga katalogstrukturen.
- 
              FileInfo-objektet skapar en dubblett testlog.txti arkivets rot. Dubblettfilen skapas eftersom rekursionen skickade ett filobjekt tillCompress-Archive. Det här beteendet förväntas eftersom varje objekt som skickas ned i pipelinen läggs till i arkivet.
Exempel 9: Uppdatera en befintlig arkivfil
I det här exemplet uppdateras en befintlig arkivfil, Draft.zip, i C:\Archives katalogen. I det här exemplet innehåller den befintliga arkivfilen rotkatalogen och dess filer och underkataloger.
Compress-Archive -Path C:\Reference -Update -DestinationPath C:\Archives\Draft.zip
Kommandot uppdateras Draft.zip med nyare versioner av befintliga filer i C:\Reference katalogen och dess underkataloger. Och nya filer som har lagts till C:\Reference i eller dess underkataloger ingår i det uppdaterade Draft.zip arkivet.
Parametrar
-CompressionLevel 
		Anger hur mycket komprimering som ska tillämpas när du skapar arkivfilen. Snabbare komprimering kräver mindre tid för att skapa filen, men kan resultera i större filstorlekar.
Om den här parametern inte anges använder kommandot standardvärdet Optimal.
Följande är godkända värden för den här parametern:
- snabbaste. Använd den snabbaste komprimeringsmetod som är tillgänglig för att minska bearbetningstiden. Snabbare komprimering kan resultera i större filstorlekar.
- Nej, komprimering. Komprimerar inte källfilerna.
- Optimalt. Bearbetningstiden beror på filstorleken.
Parameteregenskaper
| Typ: | String | 
| Standardvärde: | Optimal | 
| Godkända värden: | Optimal, NoCompression, Fastest | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
(All)
| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Parameteregenskaper
| Typ: | SwitchParameter | 
| Standardvärde: | False | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
| Alias: | jfr | 
Parameteruppsättningar
(All)
| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-DestinationPath 
		Den här parametern krävs och anger sökvägen till arkivutdatafilen. DestinationPath ska innehålla namnet på den zippade filen och antingen den absoluta eller relativa sökvägen till den zippade filen.
Om filnamnet i DestinationPath inte har något .zip filnamnstillägg lägger cmdleten till filnamnstillägget .zip .
Parameteregenskaper
| Typ: | String | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
(All)
| Position: | 1 | 
| Obligatorisk: | True | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-Force
Använd den här parametern för att skriva över en befintlig arkivfil.
Parameteregenskaper
| Typ: | SwitchParameter | 
| Standardvärde: | False | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
					PathWithForce 
					
				  
				| Position: | Named | 
| Obligatorisk: | True | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
					LiteralPathWithForce 
					
				   
				| Position: | Named | 
| Obligatorisk: | True | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-LiteralPath 
		Anger sökvägen eller sökvägarna till de filer som du vill lägga till i den arkiverade zippade filen. Till skillnad från parametern Path används värdet för LiteralPath precis som det skrivs. Inga tecken tolkas som wildcards. Om sökvägen innehåller escape-tecken omger du varje escape-tecken inom enkla citattecken för att instruera PowerShell att inte tolka några tecken som escape-sekvenser. Om du vill ange flera sökvägar och inkludera filer på flera platser i den zippade utdatafilen använder du kommatecken för att avgränsa sökvägarna.
Parameteregenskaper
| Typ: | String[] | 
| Standardvärde: | None | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
| Alias: | PSPath | 
Parameteruppsättningar
					LiteralPathWithUpdate 
					
				   
				| Position: | Named | 
| Obligatorisk: | True | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | True | 
| Värde från återstående argument: | False | 
					LiteralPathWithForce 
					
				   
				| Position: | Named | 
| Obligatorisk: | True | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | True | 
| Värde från återstående argument: | False | 
					LiteralPath 
					
				 
				| Position: | Named | 
| Obligatorisk: | True | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | True | 
| Värde från återstående argument: | False | 
-PassThru 
		Gör att cmdleten matar ut ett filobjekt som representerar den arkivfil som skapats.
Den här parametern introducerades i PowerShell 6.0.
Parameteregenskaper
| Typ: | SwitchParameter | 
| Standardvärde: | False | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
(All)
| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-Path
Anger sökvägen eller sökvägarna till de filer som du vill lägga till i den arkiverade zippade filen. Om du vill ange flera sökvägar och inkludera filer på flera platser använder du kommatecken för att avgränsa sökvägarna.
Den här parametern accepterar jokertecken. Med jokertecken kan du lägga till alla filer i en katalog i din arkivfil.
Om du använder jokertecken med en rotkatalog påverkas innehållet i arkivet:
- Om du vill skapa ett arkiv som innehåller rotkatalogen och alla dess filer och underkataloger anger du rotkatalogen i sökvägen utan jokertecken. Till exempel: -Path C:\Reference
- Om du vill skapa ett arkiv som exkluderar rotkatalogen, men zippar alla dess filer och underkataloger, använder du jokertecknet asterisk (*). Till exempel:-Path C:\Reference\*
- Om du vill skapa ett arkiv som bara zippar filerna i rotkatalogen använder du jokertecknet star-dot-star (*.*). Underkataloger för roten ingår inte i arkivet. Till exempel:-Path C:\Reference\*.*
Parameteregenskaper
| Typ: | String[] | 
| Standardvärde: | None | 
| Stöder jokertecken: | True | 
| DontShow: | False | 
Parameteruppsättningar
Path
| Position: | 0 | 
| Obligatorisk: | True | 
| Värde från pipeline: | True | 
| Värde från pipeline efter egenskapsnamn: | True | 
| Värde från återstående argument: | False | 
					PathWithUpdate 
					
				  
				| Position: | 0 | 
| Obligatorisk: | True | 
| Värde från pipeline: | True | 
| Värde från pipeline efter egenskapsnamn: | True | 
| Värde från återstående argument: | False | 
					PathWithForce 
					
				  
				| Position: | 0 | 
| Obligatorisk: | True | 
| Värde från pipeline: | True | 
| Värde från pipeline efter egenskapsnamn: | True | 
| Värde från återstående argument: | False | 
-Update
Uppdaterar det angivna arkivet genom att ersätta äldre filversioner i arkivet med nyare filversioner som har samma namn. Du kan också lägga till den här parametern för att lägga till filer i ett befintligt arkiv.
Parameteregenskaper
| Typ: | SwitchParameter | 
| Standardvärde: | False | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
Parameteruppsättningar
					PathWithUpdate 
					
				  
				| Position: | Named | 
| Obligatorisk: | True | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
					LiteralPathWithUpdate 
					
				   
				| Position: | Named | 
| Obligatorisk: | True | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
-WhatIf 
		Visar vad som skulle hända om kommandot körs. Cmdleten körs inte.
Parameteregenskaper
| Typ: | SwitchParameter | 
| Standardvärde: | False | 
| Stöder jokertecken: | False | 
| DontShow: | False | 
| Alias: | Wi | 
Parameteruppsättningar
(All)
| Position: | Named | 
| Obligatorisk: | False | 
| Värde från pipeline: | False | 
| Värde från pipeline efter egenskapsnamn: | False | 
| Värde från återstående argument: | False | 
CommonParameters
Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.
Indata
String
Du kan skicka en sträng som innehåller en sökväg till en eller flera filer.
Utdata
None
Som standard returnerar den här cmdleten inga utdata.
FileInfo
När du använder parametern PassThru returnerar den här cmdleten ett FileInfo-objekt .
Kommentarer
Om du använder rekursion och skickar objekt nedåt i pipelinen kan dubbletter av filer i arkivet dupliceras. Om du till exempel använder Get-ChildItem med parametern Recurse läggs varje FileInfo - och DirectoryInfo-objekt som skickas ned i pipelinen till i arkivet.
Cmdleten Compress-Archive använder UTF-8-kodning. Andra ZIP-arkivverktyg kan använda ett annat kodningsschema. När du extraherar filer med filnamn som inte lagras med UTF-8-kodning använder Expand-Archive det råvärde som finns i arkivet. Detta kan resultera i ett filnamn som skiljer sig från källfilnamnet som lagras i arkivet.