我正在尝试在perl中运行system
命令。我希望命令的输出到另一个文件。我正在尝试运行以下代码,但我无法在result_file
中获得结果。
#!/usr/bin/perl
use strict;
use warnings;
use Cwd;
my $path=getcwd();
my $result_file="$path/Something.txt";
open (LOG, ">$result_file") || die "Cannot create file - $!\n";
print "Executing File.\n";
system("dmexpress /run $DTL_file > $result_file") ;
close(LOG);
答案 0 :(得分:0)
做了一点改变!
system
命令之前打开文件。正如@toolic所暗示的那样。在2>&1
命令中使用system
来捕获文件中的错误(如果有)。
#!/usr/bin/perl
use strict;
use warnings;
use Cwd;
my $path=getcwd();
my $result_file="$path/Something.txt";
#open (LOG, ">$result_file") || die "Cannot create file - $!\n";
print "Executing File.\n";
system("dmexpress /run $DTL_file > $result_file 2>&1") ;
#close(LOG);
答案 1 :(得分:-1)
您可以使用反引号捕获输出,然后将其打印到文件中:
#!/usr/bin/perl
my $result_file="Something.txt";
open (LOG, ">", $result_file) || die "Cannot create file - $!\n";
print "Executing File.\n";
my $res = `dmexpress /run $DTL_file`;
print LOG $res;
close(LOG);