【问题标题】:Can windows script get real time output?windows脚本可以实时输出吗?
【发布时间】:2014-05-09 18:25:03
【问题描述】:
我知道我可以使用FOR /F来获取命令过程输出,如下:
FOR /F %%I IN ('myprogram.cmd') DO (
do something with %%I
)
但是,上述方法我必须等到“myprogram.cmd”完成然后才能获得整个输出。
我想在“myprogram.cmd”运行时实时获取输出。
只能使用windows脚本吗?
【问题讨论】:
标签:
windows
shell
batch-file
【解决方案1】:
Windows 程序当然可以使用管道异步处理另一个进程的输出。 VBScript、JScript 和 PowerShell 等脚本语言应该能够轻松做到这一点。您只需将输出通过管道传输到脚本中,脚本就会在循环中从标准输入读取,并在到达文件末尾时终止。
但是使用纯批处理非常困难并且有很大的局限性。它需要多个批处理和一个临时文件。第一个批处理过程使用 FIND 从标准输入读取并将输出重定向到临时文件。第二个批处理过程使用 SET /P 从临时文件中读取。请参阅我的batchTee.bat 了解如何做到这一点的示例。
但我不建议这样做,除非作为学术练习。相反,您应该使用可以轻松执行此操作的其他脚本语言之一。