当前位置:  开发笔记 > 编程语言 > 正文

如何使用Perl获取DOS工具的命令行输出?

如何解决《如何使用Perl获取DOS工具的命令行输出?》经验,为你挑选了1个好方法。

我想在Perl脚本中使用Windows内置FTP工具来确保链接的吞吐量.因此,该脚本将创建以下命令脚本:

open 


hash
get 500k.txt
quit

然后我使用以下Perl代码运行命令脚本:

system(@args);
@args = ("ftp", "-s:c:\\ftp_dl.txt");
system(@args);

如果我在DOS框中运行命令,输出如下所示:

ftp> open 
Connected to 
220 "Welcome to the fast and fabulous DUFTP005 ftp-server :-) "
User (:(none)):
331 Please specify the password.

230 Login successful.
ftp> hash
Hash mark printing On  ftp: (2048 bytes/hash mark) .
ftp> get 500k.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 500k.txt (14336 bytes).
#######
226 File send OK.
ftp: 14336 bytes received in 0.00Seconds 14336000.00Kbytes/sec.
ftp> quit
221 Goodbye.

为了能够获得吞吐量,我需要提取该行:

 ftp: 14336 bytes received in 0.00Seconds 14336000.00Kbytes/sec.

我对Perl不太熟悉.有人知道如何获得这条线吗?



1> heeen..:

使用管道模式打开:

open($filehandle, "$command|") or die "did not work: $! $?";
while(<$filehandle>)
{
#do something with $_
}

或使用反引号:

my  @programoutput=`$command`

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有