在Win task sceduler中启动perl脚本

时间:2016-03-28 16:04:09

标签: windows perl scheduled-tasks taskscheduler

我想安排任务在Win task sceduler中每周运行perl脚本。 perl脚本使用以下命令从命令行手动运行:

perl update_blastdb.pl --passive --decompress refseq_rna

我如何传递上述3个参数:

--passive --decompress refseq_rna

EDIT1: 我写了一个bat文件,其中包含:

@echo off
cd "C:\inetpub\wwwroot\webclient\db\nucleotide"
call "C:\Strawberry\perl\bin\perl.exe" "C:\inetpub\wwwroot\webclient\db\nucleotide\update_blastdb.pl" --passive --decompress gss_annot> C:\perl_out.log 2>&1

我在Win任务计划程序中安排任务来运行bat文件。 首先,当我指定运行它的时间时,时间过去和任务都没有运行(状态:就绪)。 其次,当我通过右键单击任务并单击运行手动运行任务时,状态更改为(正在运行),但似乎它没有运行,因为我检查了我创建的错误日志,perl_out.log和找到的它没有创建。

有任何澄清吗?

EDIT3: 当我将任务创建为“基本任务”时,它成功运行。 感谢

1 个答案:

答案 0 :(得分:1)

您希望Scheduled Task可执行文件只是" perl",其余所有内容(包括Perl脚本)都会进入Arguments。根据Windows版本,Args的指定方式不同,因此您需要查看该部分,但它在任务GUI中都可以。

其他一些建议:

  1. 制作DOS批处理脚本"包装"围绕你的命令。 BAT脚本更易于在任务GUI中指定,管理员也可以更轻松地手动启动。
  2. 还要考虑将标准输出和标准错误重定向到日志文件,以便监控正在进行的操作。有时这只需要调试启动任务的问题(就像Perl或Perl脚本的问题)。
  3. 对于奖励积分,请在单独的程序中监控日志文件,以便在出现问题时立即通知您。
  4. 编辑:根据操作编辑添加有关任务设置的详细信息。

    在任务设置中执行所有重定向,而不是在BAT脚本中。我发现有必要在mt BAT包装器中包含call,甚至不要明确包含perl.exe。

    这是一个示例任务设置: enter image description here

    以下是BAT包装器的示例:

    @echo off
    
    date/t
    time/t
    
    echo.
    disk_space.pl C:
    disk_space.pl D:
    
    echo.
    echo Done.
    exit/b