gpt4 book ai didi

windows - 如何在 Perl 中获取 Win32::Process 命令的输出?

转载 作者:可可西里 更新时间:2023-11-01 09:49:58 27 4
gpt4 key购买 nike

我正在使用 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() );
}

最佳答案

Win32::Process 是那些基本上是将 Win32 API 直接移植到 Perl 的模块之一,因此对 Perl 程序员来说意义不大。除非您想做一些非常特定于 Windows 的事情,否则有更好的方法来做。

如果你只想获得进程的输出,你可以使用 Perl 的反引号正常运行它。

my $output = `iperf.exe -u -s -p 5001`;

如果你想要花哨一些,例如后台处理一个进程并捕获它的输出,我推荐 IPC::Run .

关于windows - 如何在 Perl 中获取 Win32::Process 命令的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2572218/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com