【发布时间】:2017-02-03 20:15:27
【问题描述】:
我正在寻找一种在新控制台窗口或同一窗口中启动进程并捕获其输出的方法,我可以使用以下命令在新窗口中打开进程:
[Diagnostics.Process]::Start("C:\test.exe","-verbose -page")
这将打开一个新窗口,我可以与之交互,但我不能为它重定向输出(输出是指与窗口的整个交互,如按键和消息)
所以我想我可以试试:
Start-Transcript -path "C:\test.txt" -append
$ps = new-object System.Diagnostics.Process
$ps.StartInfo.Filename = "C:\test.exe"
$ps.StartInfo.Arguments = " -verbose -page"
$ps.StartInfo.RedirectStandardOutput = $True
$ps.StartInfo.UseShellExecute = $false
$ps.start()
while ( ! $ps.HasExited ) {
write-host = $ps.StandardOutput.ReadToEnd();
}
现在我得到了输出但没有交互,所以我需要某种选项或过程来在相同或不同的控制台中启动这个过程,并将我与它的交互捕获到文件中。
这很重要,因为应用程序有时会要求按任意键,如果我在后台启动它,它永远不会问它,因为此应用程序测量控制台窗口并检查 id 输出是否适合?
这样的事情可能吗?
【问题讨论】:
标签: powershell