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

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

概述我想在Perl脚本中使用 Windows内置FTP工具来确保链接的吞吐量.因此,该脚本将创建以下命令脚本: open <ip><username><password>hashget 500k.txtquit 然后我使用以下Perl代码运行命令脚本: system(@args);@args = ("ftp", "-s:c:\\ftp_dl.txt");system(@args); 如果 我想在Perl脚本中使用 Windows内置FTP工具来确保链接的吞吐量.因此,该脚本将创建以下命令脚本:

open <ip><username><password>hashget 500k.txtquit

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

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

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

ftp> open <ip>Connected to <ip>220 "Welcome to the fast and fabulous DUFTP005 ftp-server :-) "User (<ip>:(none)):331 Please specify the password.230 Login successful.ftp> hashHash mark printing On  ftp: (2048 bytes/hash mark) .ftp> get 500k.txt200 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> quit221 Goodbye.

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

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

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

解决方法 在管道模式下使用 open:

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

或使用反引号:

my  @programoutput=`$command`
总结

以上是内存溢出为你收集整理的如何使用Perl获取DOS工具的命令行输出?全部内容,希望文章能够帮你解决如何使用Perl获取DOS工具的命令行输出?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1213452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存