我希望将Windows命令行程序(比如powercfg -l
)的输出写入一个使用Perl创建的文件中,然后在for循环中逐行读取该文件,并将其分配给一个字符串。
发布于 2009-09-25 14:28:26
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
}
发布于 2009-09-25 15:14:13
你已经有了一些很好的答案。此外,如果只想处理命令的输出,而不需要将输出直接发送到文件,则可以在命令和Perl脚本之间建立管道。
use strict;
use warnings;
open(my $fh, '-|', 'powercfg -l') or die $!;
while (my $line = <$fh>) {
# Do stuff with each $line.
}
发布于 2009-09-16 14:33:58
system 'powercfg', '-l';
是推荐的方式。如果你不介意产生一个子壳,
system "powercfg -l";
也行得通。如果您想要字符串形式的结果:
my $str = `powercfg -l`;
https://stackoverflow.com/questions/1477500
复制相似问题