Сценарий Powershell Compress-Archive частичная ошибка - PullRequest
1 голос
/ 08 марта 2019

У меня есть скрипт, который включает в себя:

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 голосов
/ 08 марта 2019

Похоже, что Compress-Archive выдает не прекращающуюся ошибку , которую вы не можете отловить с помощью try / catch.

Однако, если вы добавите -ErrorAction Stop к вызову Compress-Archive, нескончаемая ошибка будет преобразована в завершающую сценарий ошибку , которая вызовет ваш catch обработчик.

Обзор сложных правил обработки ошибок PowerShell см. В этом выпуске GitHub .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...