从windows计划任务运行perl脚本
我在windows 2008服务器上安装了awstats。 我计划每天运行Updatestats.bat文件,任务运行正常,没有错误,但是脚本没有执行,或者抛出了一个我看不到的错误 --如果我直接从命令行运行bat文件,那么它可以正常工作-- 我尝试过windows调度程序的各种替代方案,如“从windows计划任务运行perl脚本,windows,perl,Windows,Perl,我在windows 2008服务器上安装了awstats。 我计划每天运行Updatestats.bat文件,任务运行正常,没有错误,但是脚本没有执行,或者抛出了一个我看不到的错误 --如果我直接从命令行运行bat文件,那么它可以正常工作-- 我尝试过windows调度程序的各种替代方案,如“nncron”和“Freebyte任务调度程序””,nncron也有同样的问题,但Freebyte应用程序工作正常,但遗憾的是它没有作为服务运行,因此没有任何用处。 这是bat文件的内容,所有行都是这样的
nncron
”和“Freebyte任务调度程序”
”,nncron也有同样的问题,但Freebyte应用程序工作正常,但遗憾的是它没有作为服务运行,因此没有任何用处。
这是bat文件的内容,所有行都是这样的
c:\strawberry\perl\bin\perl.exe D:\AWStats\wwwroot\cgi-bin\awstats.pl config=earlsmere.co.uk -update
有人有什么想法吗?看起来输出在太空中丢失了 我建议将命令的输出重定向到一个文件,如下所示:
c:\strawberry\perl\bin\perl.exe D:\AWStats\wwwroot\cgi-bin\awstats.pl config=earlsmere.co.uk -update > c:\my_log.txt 2>&1
(由Anders Lindahl提供:)您的无人值守环境明显不同于您的命令行。检查是否设置了以下各项:
open(STDOUT, '>>', '/full/path/to/out.log') || die "Error stdout: $!";
open(STDERR, '>>', '/full/path/to/err.log') || die "Error stderr: $!";
请注意,您确实应该使用完整路径,以防工作目录设置错误。并确保目标目录/文件对任何人都是可写的。我不懂Perl,所以这可能是答案,也可能不是答案,但您需要当前目录中的一些数据吗?如果是,您的Perl脚本是否从数据所在的目录运行?