如何使用 Powershell Compress-Archive 仅压缩文件夹中的 pdf?

How to use Powershell Compress-Archive to compress only pdfs in a folder?

我正在研究 Alteryx 工作流,它创建多个 pdf 并将它们输出到一个目录。我需要在工作流程结束时调用 Powershell 脚本将 pdf 压缩成 zip 文件并将其保存在同一位置。

我发现了这个: ,但它需要将文件复制到另一个位置,然后压缩它们。有没有一种方法可以将所有 pdf 压缩到某个文件夹位置并将 zip 文件输出到同一位置?由于 Alteryx 的限制,如果输出位于不同的位置,我可能无法使用它。

我当前的 Powershell 脚本:

Compress-Archive -LiteralPath 'D:\temp\test zipping flow\' -DestinationPath 'D:\temp\final.zip' -Force

这非常有效,但也尝试使用其他扩展名压缩文件,但我只想要 .pdf 个文件。

非常感谢任何建议。

而不是-LiteralPath使用-Path,所以你可以添加一个通配符*

Compress-Archive -Path 'D:\temp\test zipping flow\*.pdf' -DestinationPath 'D:\temp\final.zip' -Force

作为当你需要使用 -LiteralPath 时的替代方案(可能是因为路径包含将使用 -Path 解释的字符,如方括号),你可以改为这样做:

Get-ChildItem -LiteralPath 'D:\temp\test zipping flow' -Filter '*.pdf' -File | 
Compress-Archive -DestinationPath 'D:\temp\final.zip' -Force