Windows – Powershell脚本被卡住,从批处理文件调用时不退出

我有一个PowerShell脚本连接到一个网站,并解析其返回的数据(这是关于将以前上传的SQL文件导入到网站的数据库)。 PowerShell脚本使用wget,稍后可以由本机函数替换。

导入过程嵌入到由称为scriptFTP的第三方程序执行的脚本中。

当我从一个.bat文件中调用它时,脚本运行正常:

powershell  "& "C:\data\etc\run_import_script.ps1"
exit %ERRORLEVEL%

但是,当我从更大的ScriptFTP上下文中调用此.bat文件时,会发生以下情况:

> PowerShell脚本被执行。每当远程导入脚本被调用时,我确认这是我自己发送电子邮件。
PowerShell似乎没有退出,脚本执行被卡住。我仍然可以使用Ctrl C取消整个事情,但是以下命令永远不会被执行。

当我将批处理文件更改为以下内容时:

start powershell  "& "C:\data\etc\run_import_script.ps1"
exit %ERRORLEVEL%

它可以在新的控制台中运行PowerShell脚本,但是我无法获取PowerShell返回的错误级别。

我已经尝试直接从ScriptFTP调用PowerShell,绕过批处理文件,但结果相同:它刚刚被卡住。

任何使用PowerShell脚本的输出都不会使用Write-Output或Write-Host进行显示。

所有程序都运行在同一个用户下,我。

有人有什么想法要做什么?

最佳答案
尝试添加/ WAIT参数。它将保持.bat等待,直到PowerShell脚本完成。

START /WAIT powershell "& "C:\data\etc\run_import_script.ps1"

转载注明原文:Windows – Powershell脚本被卡住,从批处理文件调用时不退出 - 代码日志