У меня есть командный файл, использующий командлет PowerShell Send-MailMessage для отправки сообщений электронной почты с обновлениями состояния:
powershell -command " & {Send-MailMessage -SMTPServer smtp.somewhere.com -From 'Sender <sender@email.com>' -To 'Recipient <recipient@email.com>' -Subject 'Subject' -Body 'Body' -Attachments 'D:\Logs\Log.log';}"
if %ERRORLEVEL% neq 0 (
echo ERROR - Something went wrong sending the email
goto Error
)
Если команда Send-MailMessage не работает (например, если файл вложения не найден или другая ошибка),% ERRORLEVEL% не поднимается выше 0.
В других ответах предлагается добавить явные коды выхода в сценарий PowerShell для возврата кода, но я не могу найти ничего о том, как зафиксировать ошибку при использованиивстроенный PS командлет, такой как Send-MailMessage.Это можно сделать или мне нужно обернуть Send-MailMessage в другой скрипт PS?