在 Windows 任务调度程序中启动 perl 脚本

start perl script in Win task sceduler

我想在 Win 任务调度程序中每周将任务调度到 运行 perl 脚本。 perl 脚本是 运行ning 从命令行手动使用:

perl update_blastdb.pl --passive --decompress refseq_rna

如何传递以上 3 个参数:

--passive --decompress refseq_rna

编辑1: 我写了一个 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,发现它没有创建。

有什么需要说明的吗?

编辑3: 当我将任务创建为 "basic task" 时,它 运行 成功了。 谢谢

您希望计划任务可执行文件只是 "perl",所有其余部分(包括 Perl 脚本)都放入参数中。 Args 根据 Windows 版本指定不同,因此您需要查找该部分,但在任务 GUI 中就可以了。

其他一些建议:

  1. 围绕您的命令制作一个 DOS 批处理脚本 "wrapper"。 BAT 脚本更容易在任务 GUI 中指定,管理员也更容易手动启动。
  2. 还可以考虑将标准输出和标准错误重定向到日志文件,这样您就可以监视正在发生的事情。有时这只是为了调试启动任务的问题(例如 Perl 或 Perl 脚本的问题)。
  3. 为了获得奖励积分,请在单独的程序中监控日志文件,以便在出现问题时立即通知您。

编辑:根据操作员的编辑添加有关任务设置的详细信息。

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

这是一个任务设置示例:

这是一个 BAT 包装器示例:

@echo off

date/t
time/t

echo.
disk_space.pl C:
disk_space.pl D:

echo.
echo Done.
exit/b