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