【问题标题】:powershell: exit doesn't really exitpowershell:退出并没有真正退出
【发布时间】:2013-02-14 12:13:26
【问题描述】:

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

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

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

如果我删除退出命令并将其替换为 powershell 会话终止:

Stop-Process -Id $PID

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

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

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

【问题讨论】:

  • 嗯,使用 [这里][1] 描述的 Start /wait 似乎有帮助... [1]:stackoverflow.com/questions/2041799/…
  • 我猜你永远不会到达脚本的结尾。通过设计调用 powershell.exe -file ... 将在脚本执行结束时自动关闭,除非您明确指定 -noexit

标签: powershell


【解决方案1】:

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

不过,问题解决了……

【讨论】:

猜你喜欢
  • 2016-08-20
  • 2013-02-03
  • 1970-01-01
  • 1970-01-01
  • 2020-04-03
  • 1970-01-01
  • 2012-03-10
  • 1970-01-01
  • 2018-05-25
相关资源
最近更新 更多