如何使用 Powershell Compress-Archive 仅压缩文件夹中的 pdf?
Posted
技术标签:
【中文标题】如何使用 Powershell Compress-Archive 仅压缩文件夹中的 pdf?【英文标题】:How to use Powershell Compress-Archive to compress only pdfs in a folder? 【发布时间】:2021-10-23 23:47:20 【问题描述】:我正在研究创建多个 pdf 并将它们输出到目录的 Alteryx 工作流程。我需要在工作流结束时调用 Powershell 脚本,将 pdf 压缩成 zip 文件并将其保存在同一位置。
我发现了这个: PowerShell Compress-Archive By File Extension,但它需要将文件复制到另一个位置然后压缩它们。有没有办法可以压缩某个文件夹位置中的所有 pdf 文件并将 zip 文件输出到同一位置?由于 Alteryx 的限制,如果输出位于其他位置,我可能无法使用它。
我当前的 Powershell 脚本:
Compress-Archive -LiteralPath 'D:\temp\test zipping flow\' -DestinationPath 'D:\temp\final.zip' -Force
这很好用,但也尝试使用其他扩展名压缩文件,但我只想要 .pdf
文件。
非常感谢任何建议。
【问题讨论】:
【参考方案1】:使用-Path
代替-LiteralPath
,这样您就可以添加通配符*
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
【讨论】:
我尝试使用 *.pdf,但不知道我也必须更改路径参数。将 -LiteralPath 更改为 -Path 效果很好。谢谢@Theo以上是关于如何使用 Powershell Compress-Archive 仅压缩文件夹中的 pdf?的主要内容,如果未能解决你的问题,请参考以下文章
Windows 7中未知的Compress-Archive powershell命令
Powershell Compress-Archive 对老化文件