Powershell脚本Compress-Archive部分失败

时间:2019-03-08 02:18:21

标签: powershell

我有一个脚本,其中包括:

try {
  Compress-Archive -Path "$($folder.FullName)\*" -CompressionLevel Optimal -DestinationPath $FullPath -Force
} catch {
  Write-Output "`nFailed to create zip"
}

-Path文件夹中的某些文件是由另一个用户打开的,因此Compress-Archive无法将它们添加到zip中。它会向stderr报告此失败,但是不会引发错误。

是否有任何方法可以确定该命令仅部分成功,而无需解析stderr或重新打开zip并比较内容?

1 个答案:

答案 0 :(得分:0)

听起来Compress-Archive抛出了一个非终止错误,您无法用try / catch来捕获该错误。

但是,如果将-ErrorAction Stop添加到Compress-Archive调用中,则非终止错误将升级为脚本终止错误,而 < / em>触发您的catch处理程序。

有关PowerShell的复杂错误处理规则的概述,请参见this GitHub issue