【问题标题】:Powershell script Compress-Archive partial failurePowershell 脚本压缩存档部分失败
【发布时间】:2019-07-30 01:09:53
【问题描述】:

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

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 并比较内容?

【问题讨论】:

    标签: powershell


    【解决方案1】:

    听起来Compress-Archive 正在抛出一个非终止 错误,而try / catch 无法捕捉到该错误。

    但是,如果将 -ErrorAction Stop 添加到 Compress-Archive 调用中,非终止错误将提升为 脚本终止错误触发你的catch 处理程序。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 2021-06-02
      • 2010-11-09
      • 1970-01-01
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多