首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell:在运行时捕获cmd的输出

Powershell:在运行时捕获cmd的输出
EN

Stack Overflow用户
提问于 2014-06-05 22:14:57
回答 1查看 1.5K关注 0票数 0

是否可以在cmd运行时捕获命令行的输出?我有一个小的exe,它显示各种消息,应与脚本处理,并显示用户的一些信息,而脚本正在运行。

我的脚本使用一些参数启动程序( exe),并检查进程是否仍在运行。当程序运行时,我希望将所有消息捕获到一个变量来处理它。我找不到任何解决方案,一些测试与"run.exe 2>&1“等…失败。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-09-04 01:01:24

代码语言:javascript
复制
$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)
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24062566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档