是否可以在cmd运行时捕获命令行的输出?我有一个小的exe,它显示各种消息,应与脚本处理,并显示用户的一些信息,而脚本正在运行。
我的脚本使用一些参数启动程序( exe),并检查进程是否仍在运行。当程序运行时,我希望将所有消息捕获到一个变量来处理它。我找不到任何解决方案,一些测试与"run.exe 2>&1“等…失败。
有什么想法吗?
发布于 2014-09-04 01:01:24
$oInfo = New-Object System.Diagnostics.ProcessStartInfo
$oInfo.FileName = "ping"
$oInfo.Arguments = "localhost"
$oInfo.UseShellExecute = $False
$oInfo.RedirectStandardOutput = $True
$oProcess = New-Object System.Diagnostics.Process
$oProcess.StartInfo = $oInfo
[Void]$oProcess.Start()
$bDone = $False
while (!$bDone)
{
$char = $oProcess.StandardOutput.Read()
if ($char -eq -1)
{
if ($oProcess.HasExited)
{
$bDone = $True
}
else
{
Wait-Event 1
}
}
else
{
Write-Host -NoNewline "".PadLeft(1, $char)
}
}https://stackoverflow.com/questions/24062566
复制相似问题