我正在使用use Win32::Process我的应用程序运行如下.它运行正常,但我没有任何办法将输出到.txt文件.
我使用NORMAL_PRIORITY_CLASS而不是CREATE_NEW_CONSOLE来获取同一终端本身的输出,但我不知道如何将其重定向到txt文件.
/岩石
#!/usr/bin/perl
use strict;
use warnings;
use Win32::Process;
Win32::Process::Create(my $ProcessObj,
"iperf.exe",
"iperf.exe -u -s -p 5001",
0,
NORMAL_PRIORITY_CLASS,
".") || die ErrorReport();
my @command_output;
push @command_output,$ProcessObj;
open FILE, ">zz.txt" or die $!;
print FILE @command_output;
close FILE;
sleep 10;
$ProcessObj->Kill(0);
sub ErrorReport{
print Win32::FormatMessage( Win32::GetLastError() );
}
Run Code Online (Sandbox Code Playgroud)
Win32 :: Process是其中一个模块,它基本上是Perl的Win32 API的直接端口,因此对Perl程序员来说没什么意义.除非你想做一些特定于Windows的事情,否则有更好的方法.
如果您只想获得进程的输出,则可以使用Perl的反引号正常运行它.
my $output = `iperf.exe -u -s -p 5001`;
Run Code Online (Sandbox Code Playgroud)
如果你想获得花哨,例如后台处理进程并捕获其输出,我建议使用IPC :: Run.
| 归档时间: |
|
| 查看次数: |
1397 次 |
| 最近记录: |