(上下文:我正在尝试从 Perl CGI 脚本监视一个长时间运行的进程。它备份一个 MSSQL 数据库,然后对其进行 7-zip 压缩。到目前为止,备份部分(使用WITH STATS=1
)输出到一个文件,我可以让浏览器看一下,每隔几秒刷新一次,它就可以工作了。)
我正在尝试使用 7zip 的命令行实用程序,但将进度条捕获到文件中。不幸的是,与 SQL 备份不同,每次完成另一个百分比时,它都会输出另一行,7zip 在输出新的进度数据之前会回退其输出,因此如果您只是在命令行上正常使用它,它看起来会更好。这是不幸的原因是正常重定向使用>
, 1>
, 并且2>
只创建一个空白文件,并且没有输出出现在其中,除了>
,它在工作完成之前没有输出,这对于进度条不是很有用.
我怎样才能捕获这种输出,或者通过使用命令行技巧(没有 Perl)或者通过使用一些 Perl调用后直接捕获的代码system()
?