当我在PowerShell上运行程序时,它会打开一个新窗口,在我看到输出之前,窗口关闭。我如何做到这一点,PowerShell保持这个窗口打开?如何让PowerShell保持命令窗口打开?
11
A
回答
1
如果程序是使用cmd /c foo.cmd
命令启动的批处理文件(.cmd或.bat扩展名),只需将其更改为cmd /k foo.cmd
并执行程序,但提示符保持打开状态。
如果程序不是批处理文件,请将其包装在批处理文件中,并在其末尾添加pause
命令。要将程序包装在批处理文件中,只需将该命令放入一个文本文件中,并为其指定.cmd扩展名。然后执行,而不是exe。
8
尝试做:
start-process your.exe -NoNewWindow
添加太多,如果需要-Wait
。
3
几周前我正在解决类似的问题。如果您不想使用&(& '.\program.exe'
),那么您可以使用启动过程并通过启动过程(显式读取输出的位置)读取输出。
只是把这个作为单独的PS1文件 - 例如(或宏):
param (
$name,
$params
)
$process = New-Object System.Diagnostics.Process
$proInfo = New-Object System.Diagnostics.ProcessStartInfo
$proInfo.CreateNoWindow = $true
$proInfo.RedirectStandardOutput = $true
$proInfo.RedirectStandardError = $true
$proInfo.UseShellExecute = $false
$proInfo.FileName = $name
$proInfo.Arguments = $params
$process.StartInfo = $proInfo
#Register an Action for Error Output Data Received Event
Register-ObjectEvent -InputObject $process -EventName ErrorDataReceived -action {
foreach ($s in $EventArgs.data) { Write-Host $s -ForegroundColor Red }
} | Out-Null
#Register an Action for Standard Output Data Received Event
Register-ObjectEvent -InputObject $process -EventName OutputDataReceived -action {
foreach ($s in $EventArgs.data) { Write-Host $s -ForegroundColor Blue }
} | Out-Null
$process.Start() | Out-Null
$process.BeginOutputReadLine()
$process.BeginErrorReadLine()
$process.WaitForExit()
然后调用它像:
.\startprocess.ps1 "c:\program.exe" "params"
您还可以轻松将输出重定向或实现某种的超时情况下,你的应用程序可以冻结...
+0
完美。正是我在找什么。万分感谢。 – Saulius 2012-07-05 13:51:42
4
OP似乎满意答案,但它并没有保持新窗口打开执行程序后,这是他似乎是询问(以及我正在寻找的答案)。所以,经过一番更多的研究,我想出了:
Start-Process cmd "/c `"your.exe & pause `""
相关问题
- 1. Visual Studio - 保持命令窗口打开
- 2. 保持打开cmd窗口
- 3. Python的 - 保持命令窗口打开看到的结果
- 4. .Net进程保持命令窗口打开
- 5. 如何从.Net应用程序打开时如何保持打开Python脚本命令窗口?
- 6. 保持打开PowerShell窗口和任务计划程序
- 7. 在Process.Start(..)期间保持外部命令窗口打开的任何方法?
- 8. Python - 保持Tkinter窗口打开?
- 9. QLabel show命令打开新窗口
- 10. 打开program.exe没有命令行窗口
- 11. 命令行打开一个窗口
- 12. 打开窗户端口命令行
- 13. 使用命令打开窗口(WPF)
- 14. 在新窗口中打开命令
- 15. show()命令不会打开窗口Wpf
- 16. 调用命令提示符并让窗口打开
- 17. 如果测试失败,您如何让Karma保持浏览器窗口打开?
- 18. 打开byobu窗口,每个窗口运行一个命令?
- 19. Python EasyGUI如何在给定输入时保持窗口打开
- 20. Java Swing:如何在关闭后保持父窗口打开JFileChooser
- 21. 如何保持窗口打开:ShellExecuteW(0,0,“powershell.exe”,“..”,“..”,SW_SHOW)?
- 22. 如何保持Python脚本输出窗口打开?
- 23. jQuery UI Accordian:如何保持特定的窗口默认打开?
- 24. 如何保持控制台窗口打开
- 25. 如何在执行后保持控制台窗口打开?
- 26. 如何在Eclipse的COBOL IDE中保持输出窗口打开?
- 27. 我如何使intellij android预览窗口保持打开状态?
- 28. 如何在php中打开终端窗口并执行命令?
- 29. 如何从Linux的命令行打开新窗口(shell)?
- 30. 如何在左上角打开命令提示符窗口?
这个程序是一个exe文件还是一个批处理文件?你能给出你正在运行的确切命令,可能会更改可执行文件的名称吗? – 2012-02-11 21:46:13
这是一个exe文件。我将程序所在的文件夹添加到我的路径中,当我输入它运行的程序的名称时,除了它打开的窗口关闭太快,我无法阅读它说的内容。该程序是一个测试python程序的程序。至于下面的评论,我不知道如何在批处理文件中打包程序:/ – Erman 2012-02-11 21:56:15
我更新了我的答案,以澄清如何做到这一点。将程序输出重定向到文本文件也是有意义的。 – 2012-02-11 22:59:52