如何在Perl中获得外部命令的输出?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

我想要Windows命令行程序的输出(比如说,powercfg -l)写入使用Perl创建的文件,然后在for循环中逐行读取文件,并将其分配给字符串。

提问于
用户回答回答于
my $output = qx(powercfg -l);

## You've got your output loaded into the $output variable. 
## Still want to write it to a file?
open my $OUTPUT, '>', 'output.txt' or die "Couldn't open output.txt: $!\n";
print $OUTPUT $output;
close $OUTPUT

## Now you can loop through each line and
##   parse the $line variable to extract the info you are looking for.
foreach my $line (split /[\r\n]+/, $output) {
  ## Regular expression magic to grab what you want
}
用户回答回答于
system 'powercfg', '-l';

是推荐的方法。如果你不介意

system "powercfg -l";

也会起作用的。如果你想要字符串中的结果:

my $str = `powercfg -l`;

扫码关注云+社区