调度perl脚本

时间:2010-07-02 21:02:42

标签: perl scheduled-tasks

我有一个perl .exe文件,我每十分钟运行一次。我已经设置了Windows调度程序来运行它,它说它成功但文件中没有输出。当我自己单击.exe时,它会将信息写入输出文件。据说调度程序已经运行它,文件中没有任何内容。有没有我可以写入perl脚本的代码,让它自己每十分钟运行一次?或者是否有人知道它可能无法正常执行的原因。这是我的脚本代码:

#!/usr/bin/perl -w
use LWP::Simple;
$now_string = localtime;

my $html = get("http://www.spc.noaa.gov/climo/reports/last3hours.html")
    or die "Could not fetch NWS page.";
$html =~ m{(Hail Reports.*)Wind Reports}s || die;
my $hail = $1;
open OUTPUT, ">>output.txt";
print OUTPUT ("\n\t$now_string\n$hail\n");
close OUTPUT;
print "$hail\n";

2 个答案:

答案 0 :(得分:1)

假设您没有从代码中删除路径并且您没有指定启动目录,请提供输出文件的完整路径,例如

open OUTPUT, ">>J:/Project/Reports/output.txt"
  or die "$0: open: $!";

答案 1 :(得分:1)

你应该做两件事:

  1. 指定程序中的路径
  2. 确保调度程序
  3. 可以写入文件的权限

    代码:

    #!/usr/bin/perl -w
    
    use LWP::Simple;
    use strict;                                           # make sure you write good code
    
       my $now_string = localtime;
    
       my $html = get("http://www.spc.noaa.gov/climo/reports/last3hours.html")
                  or die "Could not fetch NWS page.";
       my ($hail) = $html =~ m{(Hail Reports.*)Wind Reports}s or die;  # combine your lines in one
    
       my $file = "C:\Path\output.txt";                   # use full qualified path
       open OUTPUT, ">>$file";
          print OUTPUT ("\n\t$now_string\n$hail\n");
       close OUTPUT;
    
       print "$hail\n";