У меня есть сценарий PowerShell, который подключается к веб-сайту и анализирует его возвращенные данные (речь идет об импорте ранее загруженного файла SQL в базу данных веб-сайта). Сценарий PowerShell использует wget
, что позже я могу заменить собственной функцией.
Процесс импорта встроен в скрипт, который выполняется сторонней программой с именем scriptFTP .
Сценарий работает нормально, когда я вызываю его из одного файла .bat, например:
powershell "& "C:\data\etc\run_import_script.ps1"
exit %ERRORLEVEL%
Однако, когда я вызываю этот .bat-файл из большего контекста ScriptFTP, происходит следующее:
- Сценарий PowerShell выполняется . Я подтвердил это, отправляя себе электронное письмо каждый раз, когда вызывался скрипт удаленного импорта.
- Кажется, что PowerShell не завершается, и выполнение скрипта застревает . Я все еще могу отменить все это, используя Ctrl + C, но следующие команды никогда не будут выполнены.
Когда я изменяю командный файл на следующее:
start powershell "& "C:\data\etc\run_import_script.ps1"
exit %ERRORLEVEL%
это работает , при запуске сценария PowerShell в новой консоли, но я не могу получить уровень ошибки, который возвращает PowerShell.
Я пытался вызвать PowerShell напрямую из ScriptFTP, минуя командный файл, но с тем же результатом: он просто зависает.
Все выходные данные, которые у меня есть в скрипте PowerShell, с использованием Write-Output
или Write-Host
, не отображаются.
Все программы запускаются под одним и тем же пользователем, мной.
У кого-нибудь есть идеи, что делать?