【发布时间】:2012-03-01 17:29:56
【问题描述】:
我正在寻找等效的 PowerShell 命令:
tar -zcvf tar-archive-name.tar.gz source-folder
是否存在这样的单行程序,它从文件夹创建一个 zip 文件,递归地添加 source-folder 的内容,不需要像 7-zip 这样的第 3 方库?
【问题讨论】:
我正在寻找等效的 PowerShell 命令:
tar -zcvf tar-archive-name.tar.gz source-folder
是否存在这样的单行程序,它从文件夹创建一个 zip 文件,递归地添加 source-folder 的内容,不需要像 7-zip 这样的第 3 方库?
【问题讨论】:
以Powershell 5开头,可以使用内置的Compress-Archive命令:
Compress-Archive -Path source-folder -DestinationPath archive-name.zip
如果您使用的是版本 5 之前的 powershell,那么没有像 7-zip 这样的第三方程序,就没有一种线性解决方案。但是,您可以利用通过 COM Shell object 公开的 Windows 资源管理器的内置压缩功能来构建您自己的 powershell 函数来执行此操作。 This page outlines the details 了解如何操作。
【讨论】:
实际上,有一个等价物可以创建 zip 存档,甚至还有一个可以创建完全匹配的单行文件,即 tar 文件。你应该首先寻找这样一个库函数的地方是PowerShell Community Extensions,它为 PowerShell 提供了丰富的高质量库扩展。不幸的是,对特定项目的网络搜索(例如您的 zip 创建功能)可能不会显示任何内容,因为在网站或文档中没有任何地方包含提供的 cmdlet 和函数列表!要找出您必须安装库然后执行help about_pscx。通过筛选,您会发现与您的问题相关的内容:
Write-Zip
Create ZIP format archive files from pipline or parameter input.
Write-GZip
Create GNU ZIP (GZIP) format files from pipeline or parameter input.
Write-Tar
Create Tape Archive (TAR) format files from pipeline or parameter input.
在这里,从他们的嵌入式示例中,您可以如何使用它们:
PS> dir c:\logs\ -rec -inc *.log | write-zip -level 9 -removeoriginal
PS> dir c:\logs\ -rec -inc *.log | write-tar -output logs.tar | write-gzip -level 9 | move-item c:\archived_logs\
【讨论】: