Как я могу поймать ошибку .ps1, когда она вызывается из CmdExec? - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть задание агента SQL, которое динамически создает файл .ps1 для копирования файлов, а затем использует шаг задания CmdExec, чтобы проверить его и запустить. Если копировать нечего, PS1 не будет создан. Но если у меня неверный путь или другая ошибка .ps1, шаг задания CmdExec по-прежнему сообщает об успешном выполнении. Я не знаю, как заставить CmdExec перехватить ошибку в .ps1.

, если существует c: \ folder \ BatchCopy.ps1 Powershell -file "c: \ folder \ BatchCopy.ps1"

1 Ответ

0 голосов
/ 01 ноября 2019

Я понял это, упростив это. Вместо использования CmdExec для запуска Powershell, просто используйте Powershell. Если шаг задания не пройден, задание не будет выполнено, и я узнаю об этом.

    # If the batch script was built - run it
    c:
    $fileToCheck = "c:\folder\BatchCopy.ps1"
    if (Test-Path $fileToCheck -PathType leaf)
    {
        & "c:\folder\BatchCopy.ps1"
    }
...