使用 PowerShell 压缩和解压缩文件
在 PowerShell 5.0 中,Microsoft 具有用于创建 zip 存档和从现有存档中提取文件的命令。本文将讨论用于归档和解压缩压缩文件的 PowerShell 命令。
以下命令是 PowerShell v5.0 中发布的两个最新 cmdlet:Compress-Archive
命令从文件夹或单个文件创建压缩存档文件,Expand-Archive
命令从压缩存档文件中提取文件。
使用 PowerShell 压缩文件
让我们使用 PowerShell 将文件压缩到一个新的 .zip
档案中。
使用 -Path
参数指定我们要压缩的文件夹的位置,使用 -DestinationPath
参数指定要创建的压缩档案的名称。
例如,下面的命令将压缩 C:
根目录中的 Temp
文件夹,并在 Temp 文件夹中创建一个名为 Temp_Files.zip
的存档:
Compress-Archive -Path C:\Temp -DestinationPath C:\Temp\Temp_Files.zip
或者,我们可以使用 -LiteralPath
参数而不是 -Path
参数单独压缩 Temp 文件夹中的文件。这将创建一个仅包含 -LiteralPath
参数中列出的两个文件的存档:
Compress-Archive -LiteralPath C:\Temp\File1.txt, C:\Temp\File2.txt -DestinationPath C:\Temp\Temp_Files.zip -Force
我们添加了 -Force
参数来覆盖我创建的第一个存档。如果没有 -Force
参数,你将无法替换现有存档,Windows PowerShell 将提示你将文件添加到存档中。
要将多个文件添加到存档中,我们可以使用 -Update
参数。例如,下面的命令将 Invoices
文件夹中的所有文件添加到我现有的 Temp_Files.zip
存档中:
Compress-Archive -Path C:\Temp\* -Update -DestinationPath C:\Temp\Temp_Files.zip
我们还可以将 -CompressionLevel
参数与三个值之一一起使用:NoCompression
、Optimal
或 Fastest
。
如果表达式中不存在 -CompressionLevel
参数,则 Optimal
是默认值。Optimal
压缩使用最佳压缩,但它可能需要比 Fastest
更长的时间。
使用 NoCompression
值创建不压缩的存档。
Compress-Archive -Path C:\Temp\* -Update -DestinationPath C:\Temp\Temp_Files.zip -CompressionLevel Optimal
使用 PowerShell 解压缩文件
要从存档中提取文件,我们需要指定存档的名称和解压缩文件的目标文件夹。
使用 Expand-Archive
命令会将 Temp_Files.zip
存档的内容提取到 Temp
文件夹。
Expand-Archive -LiteralPath C:\Temp\Temp_Files.Zip -DestinationPath C:\Temp
Expand-Archive
将自动创建提取文件的文件夹。
但是,如果我们解压的压缩文件已经存在于目标文件夹中,Expand-Archive
会报错。我们可以通过在命令行中添加 -Force
参数来覆盖目标文件夹中的文件。
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn