扩展归档示例
虽然压缩内容很有趣,但在某些时候我们可能希望实际获取数据并使用它。
为此,我们首先需要使用 Expand-Archive cmdlet 扩展内容。
解压缩 .zip 文件
我们可以像这样将 .zip 文件的所有内容提取到指定的目录中。
PS C:\Users\Administrator\Desktop> Expand-Archive -LiteralPath C:\Users\Administrator\Desktop\test.zip -DestinationPathC:\Users\Administrator\Desktop\testing
在本示例中,我们将桌面上 test.zip 文件中的所有内容解压缩到桌面上的 testing 目录中。
在 Windows Server 2014 之前,没有自定义脚本或者工具通过命令行将文件压缩为 .zip 存档的简单内置方法。
在这里,我们来看看 PowerShell 5.0 中提供的一些新 cmdlet,它们允许我们将内容存档到 .zip 文件中。
Windows Server 2014 附带 PowerShell 5.0 版,其中包含许多新的 cmdlet,包括我们将在此处演示的 Compress-Archive 和 Expand-Archive。
压缩归档示例
创建一个新的 .zip 文件
使用 Compress-Archive,我们可以创建一个 .zip 文件,如下所示。
PS C:\Users\Administrator\Desktop> Compress-Archive -LiteralPath C:\Users\Administrator\Desktop\test.txt -DestinationPath C:\Users\Administrator\Desktop\test
在此示例中,我们在桌面上创建 test.zip,其中包含 test.txt 文件,该文件也驻留在桌面上。
请务必注意,这不会删除原始 test.txt 文件,而是将其保留并创建一个新的 .zip 文件,其中也包含 test.txt。
无需在输出文件上指定 .zip 扩展名,这会自动进行。
更新现有文件或者添加新文件
使用 -U update 标志,我们可以更新现有文件,只要它们具有相同的文件名。
较新的文件需要存在于 .zip 文件之外,如果 .zip 文件中的文件较新,则不会添加。
如果 .zip 文件中根本不存在该文件,则会将其添加到.
PS C:\Users\Administrator\Desktop> Compress-Archive -U -LiteralPath C:\Users\Administrator\Desktop\test.txt -DestinationPath C:\Users\Administrator\Desktop\test
将整个文件夹归档到 .zip 文件
我们不仅可以添加单个文件,还可以将整个文件夹归档到我们的 test.zip 文件中,如下所示。
PS C:\Users\Administrator\Desktop> Compress-Archive -U -Path C:\Users\Administrator\Desktop\testing\* -DestinationPath C:\Users\Administrator\Desktop\test
这会将 testing 文件夹中的所有内容添加到桌面上现有的 test.zip 文件中。
请注意,-LiteralPath 已更改为 -Path,因为这是在路径中使用通配符所必需的,这就是我们在这里使用“*”所做的。
如果我们想将这些文件添加到新的 .zip 文件而不是现有文件,我们可以选择删除 -U。
修改压缩级别
在压缩级别和执行压缩所需的时间之间总是需要权衡,因为更高级别的压缩需要更多的系统资源来处理,这将花费更长的时间。
这可以通过 -CompressionLevel 标志进行调整。
默认情况下,它会使用 --Optimal ,这通常相当不错,但是我们可以选择更改为 --Fastest ,这会更快,但最终结果通常会更大并使用更多磁盘空间。
另一方面,指定 --NoCompression 将不使用任何压缩,并且 .zip 存档将与原始内容的大小相同。