[玩转系统] Compress-Archive (Microsoft.PowerShell.Archive)
作者:精品下载站 日期:2024-12-14 02:25:24 浏览:15 分类:玩电脑
Compress-Archive (Microsoft.PowerShell.Archive)
Compress-Archive
模块 :Microsoft.PowerShell.Archive从指定的文件和目录创建压缩存档或压缩文件。
句法
Compress-Archive
[-Path] <String[]>
[-DestinationPath] <String>
[-CompressionLevel <String>]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Compress-Archive
[-Path] <String[]>
[-DestinationPath] <String>
[-CompressionLevel <String>]
-Update
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Compress-Archive
[-Path] <String[]>
[-DestinationPath] <String>
[-CompressionLevel <String>]
-Force
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Compress-Archive
-LiteralPath <String[]>
[-DestinationPath] <String>
[-CompressionLevel <String>]
-Update
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Compress-Archive
-LiteralPath <String[]>
[-DestinationPath] <String>
[-CompressionLevel <String>]
-Force
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Compress-Archive
-LiteralPath <String[]>
[-DestinationPath] <String>
[-CompressionLevel <String>]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
描述
Compress-Archive
cmdlet 从一个或多个指定的文件或目录创建压缩的存档文件。存档将多个文件(可选压缩)打包为单个压缩文件,以便于分发和存储。可以使用 CompressionLevel 参数指定的压缩算法来压缩存档文件。
Compress-Archive
cmdlet 使用System.IO.Compression.ZipArchive API 来压缩文件。 API 将最大文件大小限制为 2GB。有关详细信息,请参阅 System.IO.Compression.ZipArchive。
笔记
创建或更新存档文件时,Compress-Archive
cmdlet 会忽略隐藏文件和文件夹。在非 Windows 计算机上,这包括名称以句点 (.
) 字符开头的文件和文件夹。
为了确保隐藏文件和文件夹被压缩到存档中,请改用 .NET API。
一些示例使用展开来减少代码示例的行长度。有关详细信息,请参阅 about_Splatting。
示例
示例 1:压缩文件以创建存档文件
此示例压缩不同目录中的文件并创建存档文件。通配符用于获取具有特定文件扩展名的所有文件。存档文件中没有目录结构,因为路径仅指定文件名。
$compress = @{
Path = "C:\Reference\Draftdoc.docx", "C:\Reference\Images\*.vsd"
CompressionLevel = "Fastest"
DestinationPath = "C:\Archives\Draft.zip"
}
Compress-Archive @compress
Path 参数接受特定文件名和带通配符的文件名 *.vsd
。 路径使用逗号分隔的列表来从不同的目录获取文件。压缩级别为最快,以减少处理时间。 DestinationPath 参数指定 Draft.zip
文件的位置。 Draft.zip
文件包含 Draftdoc.docx
以及所有具有 .vsd
扩展名的文件。
示例 2:使用 LiteralPath 压缩文件
此示例压缩特定的命名文件并创建一个新的存档文件。存档文件中没有目录结构,因为路径仅指定文件名。
$compress = @{
LiteralPath= "C:\Reference\Draft Doc.docx", "C:\Reference\Images\diagram2.vsd"
CompressionLevel = "Fastest"
DestinationPath = "C:\Archives\Draft.zip"
}
Compress-Archive @compress
使用绝对路径和文件名是因为 LiteralPath 参数不接受通配符。 路径使用逗号分隔的列表来从不同的目录获取文件。压缩级别为最快,以减少处理时间。 DestinationPath 参数指定 Draft.zip
文件的位置。 Draft.zip
文件仅包含 Draftdoc.docx
和 diagram2.vsd
。
示例 3:压缩包含根目录的目录
此示例压缩目录并创建一个存档文件,其中包括根目录及其所有文件和子目录。存档文件具有目录结构,因为 Path 指定了根目录。
Compress-Archive -Path C:\Reference -DestinationPath C:\Archives\Draft.zip
Compress-Archive
使用Path 参数指定根目录C:\Reference
。 DestinationPath 参数指定存档文件的位置。 Draft.zip
存档包含 Reference
根目录及其所有文件和子目录。
示例 4:压缩不包括根目录的目录
此示例压缩一个目录并创建一个排除根目录的存档文件,因为路径使用星号(*
)通配符。存档包含一个目录结构,其中包含根目录的文件和子目录。
Compress-Archive -Path C:\Reference\* -DestinationPath C:\Archives\Draft.zip
Compress-Archive
使用 Path 参数指定根目录,C:\Reference
带有星号 (*
) 通配符。 DestinationPath 参数指定存档文件的位置。 Draft.zip
存档包含根目录的文件和子目录。 Reference
根目录不包含在存档中。
示例 5:仅压缩根目录中的文件
此示例仅压缩根目录中的文件并创建存档文件。存档中没有目录结构,因为只压缩文件。
Compress-Archive -Path C:\Reference\*.* -DestinationPath C:\Archives\Draft.zip
Compress-Archive
使用 Path 参数指定根目录,C:\Reference
带有星点-星号强> (*.*
) 通配符。 DestinationPath 参数指定存档文件的位置。 Draft.zip
存档仅包含 Reference
根目录的文件,根目录被排除。
示例 6:使用管道归档文件
此示例将文件发送到管道以创建存档。存档文件中没有目录结构,因为路径仅指定文件名。
Get-ChildItem -Path C:\Reference\Afile.txt, C:\Reference\Images\Bfile.txt |
Compress-Archive -DestinationPath C:\Archives\PipelineFiles.zip
Get-ChildItem
使用 Path 参数指定来自不同目录的两个文件。每个文件都由一个 FileInfo 对象表示,并沿着管道发送到 Compress-Archive
。两个指定的文件存档在 PipelineFiles.zip
中。
示例 7:使用管道归档目录
此示例沿管道发送一个目录以创建存档。文件作为 FileInfo 对象发送,目录作为 DirectoryInfo 对象发送。存档的目录结构不包括根目录,但其文件和子目录包含在存档中。
Get-ChildItem -Path C:\LogFiles | Compress-Archive -DestinationPath C:\Archives\PipelineDir.zip
Get-ChildItem
使用 Path 参数指定 C:\LogFiles
根目录。每个 FileInfo 和 DirectoryInfo 对象都沿着管道发送。
Compress-Archive
将每个对象添加到 PipelineDir.zip
存档中。未指定 Path 参数,因为管道对象被接收到参数位置 0。
示例 8:递归如何影响档案
此示例显示递归如何复制存档中的文件。例如,如果您将 Get-ChildItem
与 Recurse 参数一起使用。在递归过程中,每个 FileInfo 和 DirectoryInfo 对象都会沿着管道发送并添加到存档中。
Get-ChildItem -Path C:\TestLog -Recurse |
Compress-Archive -DestinationPath C:\Archives\PipelineRecurse.zip
C:\TestLog
目录不包含任何文件。它确实包含一个名为 testsub
的子目录,其中包含 testlog.txt
文件。
Get-ChildItem
使用Path 参数指定根目录C:\TestLog
。 Recurse 参数处理文件和目录。为 testsub
创建一个 DirectoryInfo 对象,并为 testlog.txt
创建一个 FileInfo 对象。
每个对象都会沿着管道发送到压缩存档
。 DestinationPath 指定存档文件的位置。未指定 Path 参数,因为管道对象被接收到参数位置 0。
以下摘要描述了包含重复文件的 PipelineRecurse.zip
存档的内容:
- DirectoryInfo 对象创建
testsub
目录并包含testlog.txt
文件,该文件反映了原始目录结构。 - FileInfo 对象在存档的根目录中创建重复的
testlog.txt
。创建重复文件是因为递归将文件对象发送到压缩存档
。此行为是预期的,因为沿着管道发送的每个对象都会添加到存档中。
示例 9:更新现有存档文件
此示例更新 C:\Archives
目录中的现有存档文件 Draft.zip
。在此示例中,现有存档文件包含根目录及其文件和子目录。
Compress-Archive -Path C:\Reference -Update -DestinationPath C:\Archives\Draft.zip
该命令使用 C:\Reference
目录及其子目录中现有文件的新版本更新 Draft.zip
。而且,添加到 C:\Reference
或其子目录的新文件包含在更新的 Draft.zip
存档中。
参数
-CompressionLevel
指定创建存档文件时要应用的压缩程度。更快的压缩需要更少的时间来创建文件,但可能会导致文件大小更大。
如果未指定此参数,该命令将使用默认值最佳。
以下是该参数可接受的值:
- 最快。使用可用的最快压缩方法来减少处理时间。更快的压缩会导致更大的文件大小。
- 无压缩。不压缩源文件。
- 最佳。处理时间取决于文件大小。
String
接受的值:最佳、无压缩、最快
位置:命名
默认值:最佳的
必需的:False
接受管道输入:False
接受通配符:False
-Confirm
在运行 cmdlet 之前提示您进行确认。
类型 :SwitchParameter
别名:cf
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-DestinationPath
该参数是必需的,指定存档输出文件的路径。 DestinationPath 应包含压缩文件的名称以及压缩文件的绝对或相对路径。
如果 DestinationPath 中的文件名没有 .zip
文件扩展名,cmdlet 将添加 .zip
文件扩展名。
String
位置:1
默认值:None
必需的:True
接受管道输入:False
接受通配符:False
-Force
使用此参数覆盖现有存档文件。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:True
接受管道输入:False
接受通配符:False
-LiteralPath
指定要添加到存档压缩文件中的文件的一个或多个路径。与 Path 参数不同,LiteralPath 的值完全按照键入的方式使用。没有字符被解释为通配符。如果路径包含转义字符,请将每个转义字符括在单引号中,以指示 PowerShell 不要将任何字符解释为转义序列。要指定多个路径,并在输出压缩文件中包含多个位置的文件,请使用逗号分隔路径。
类型 :String[]
别名:PSPath
位置:命名
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-PassThru
使 cmdlet 输出表示所创建的存档文件的文件对象。
此参数是在 PowerShell 6.0 中引入的。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-Path
指定要添加到存档压缩文件中的文件的一个或多个路径。要指定多个路径并在多个位置包含文件,请使用逗号分隔路径。
该参数接受通配符。通配符允许您将目录中的所有文件添加到存档文件中。
对根目录使用通配符会影响存档的内容:
- 要创建包括根目录及其所有文件和子目录的存档,请在路径中指定不带通配符的根目录。例如:
-路径 C:\Reference
- 要创建排除根目录但压缩其所有文件和子目录的存档,请使用星号 (
*
) 通配符。例如:-路径 C:\Reference\*
- 要创建仅压缩根目录中文件的存档,请使用星-点-星 (
*.*
) 通配符。根目录的子目录不包含在存档中。例如:-路径 C:\Reference\*.*
String[]
位置:0
默认值:None
必需的:True
接受管道输入:True
接受通配符:True
-Update
通过用具有相同名称的较新文件版本替换存档中的旧文件版本来更新指定存档。您还可以添加此参数以将文件添加到现有存档中。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:True
接受管道输入:False
接受通配符:False
-WhatIf
显示 cmdlet 运行时会发生什么情况。该 cmdlet 未运行。
类型 :SwitchParameter
别名:wi
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
输入
字符串
您可以通过管道传输包含一个或多个文件路径的字符串。
输出
无
默认情况下,此 cmdlet 不返回任何输出。
文件信息
当您使用 PassThru 参数时,此 cmdlet 将返回 FileInfo 对象。
笔记
使用递归并沿着管道发送对象可以复制存档中的文件。例如,如果您将 Get-ChildItem
与 Recurse 参数一起使用,则发送的每个 FileInfo 和 DirectoryInfo 对象管道已添加到存档中。
Compress-Archive
cmdlet 使用 UTF-8 编码。其他 ZIP 存档工具可能使用不同的编码方案。当提取文件名未使用 UTF-8 编码存储的文件时,Expand-Archive
使用在存档中找到的原始值。这可能会导致文件名与存档中存储的源文件名不同。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag