【问题标题】:Command prompt window opens and closes immediately while running powershell script命令提示符窗口在运行 powershell 脚本时立即打开和关闭
【发布时间】:2018-05-01 18:01:14
【问题描述】:

我正在尝试按如下方式运行 powershell 脚本:

Start-Process -FilePath "C:\svn\Services\trunk\Services.In4m.Agent.Host\bin\agent.exe" -Argument --help

发生这种情况的任何原因。另外,如何编写脚本使命令提示符窗口不会立即关闭?

【问题讨论】:

  • 发生这种情况是因为 agent.exe 已完成且正在关闭。你可以试试 -Wait
  • 使用 -Wait 也会关闭。任何其他解决方案
  • Powershell 不接受 -wait 请求
  • @the_coder_in_me 这绝对不是真的。

标签: c# powershell command-line executable start-process


【解决方案1】:

该程序似乎要结束了。如果命令只是输出帮助文本并结束,则窗口将在完成后关闭。

最好的办法是捕获命令的输出并将其显示给用户。

& "C:\svn\Services\trunk\Services.In4m.Agent.Host\bin\agent.exe" --help | Write-Host

如果你想打开一个单独的窗口并等待用户按回车键关闭它,你可以这样做:

Start-Process 
  -FilePath "powershell.exe" 
  -ArgumentList "& 'C:\svn\Services\trunk\Services.In4m.Agent.Host\bin\agent.exe' --help; Read-Host"

这取决于你想要达到的目标。

【讨论】:

  • 我正在尝试打开 agent.exe 并按住运行 agent.exe 触发的窗口
  • 您运行的哪个命令以窗口关闭得太快结束了?当您从命令行运行 agent.exe 时会发生什么,而不依赖于 PowerShell?是否立即返回命令提示符?
  • 当我从命令行运行 agent.exe .. 它会在 cmd 本身中弹出一个小文档,列出我可以添加的所有执行模式和命令行参数...进入文件夹并从powershell运行agent.exe ..当我使用外部脚本运行相同的agent.exe文件时不知道它反应的原因
【解决方案2】:

在你的 powershell 脚本末尾添加:
它要求用户按下任意键并等待用户按下某个键。

Write-Host "Press any key to continue ...".
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

【讨论】:

  • 这将保存powershell窗口,而不是通过agent.exe生成的cmd窗口
  • 哦,那你可以使用 noexit 标签了。
  • @the_coder_in_me 这个问题听起来像你的程序。
  • @TheIncorrigible1 这是 powershell 的一个常见问题,它不是我的程序。您可以尝试谷歌搜索它仅供参考,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多