4

我代表正在尝试将 powershell 与我们的一种产品一起使用的其他人调查问题。我们的产品可以执行命令来执行操作,大多数人直接调用 .exe 可以正常工作。不过,一位用户正在使用这种方法调用一些 powershell:

powershell -version 2.0 -NonInteractive -ExecutionPolicy ByPass -file ($ScriptsFolder)p4_commit.ps1 {"($Message)" ($Files)}

但发生的情况是它永远不会退出,所以我们的软件会一直等待。脚本以一个简单的“exit 0”结束,紧接在前面的行是一个调试输出,如果我们从外部取消该进程,则会显示该输出,所以它已经到了脚本的末尾 OK(是的,否则脚本运行良好)。

如果我删除 exit 命令并将其替换为 powershell session kill:

Stop-Process -Id $PID

然后它确实终止了,但退出代码当然不是 0,我们回滚更改,所以它不是一个合适的解决方法。

否则,回到“exit 0”,我可以看到带有发送参数的 powershell.exe 仍然显示在任务管理器中;所以这并不是说它正在退出,我们没有接受它,它只是没有退出。

唉,我不是一个 powershell 专家——所以问题归结为“什么会阻止退出?”

4

1 回答 1

2

好的,确认,修改命令以使用 start /wait 调用 powershell.exe 修复它。我不知道为什么(它肯定会到达脚本的末尾,就好像我将出口更改为随机的我会出错)。

不过,问题解决了……

于 2013-02-14T15:06:31.477 回答