1

假设我有多个在不同时间运行的计划任务,但所有这些任务都在运行一个常见的 Windows 批处理文件。该批处理文件依次执行 Java 程序。

我希望我的批处理文件获取调用它的计划任务的名称,并将其名称传递给我的批处理正在执行的程序。我怎样才能做到这一点?

4

2 回答 2

2

您可以将计划任务的名称作为参数传递给批处理文件。如果没有外部的帮助,您无法从批次内部弄清楚。

于 2012-05-07T11:03:22.797 回答
2

就像乔伊说的,如果没有外界的帮助,就没有办法做到这一点。

您可以为每个任务创建一个单独的批处理实例,每个任务中都有一个参数指定分配哪个任务来运行它。您还可以像这样创建较小的批次:

CALL mybatch.bat 1st_task

这会将您的第一个任务的名称作为%1变量传递到批处理中。

你也可以让你的批处理根据它使用变量运行的时间来计算它%time%,但这需要一些解析我敢肯定,因为你不能总是保证它同时运行到第二个。

它可能看起来像这样:

if '%time:~0,5%'=='10:30' set var=1st_task
if '%time:~0,5%'=='12:00' set var=2nd_task

等等

(最后一个假设您的任务仅在一天中的指定时间运行......如果由于某种原因它们在不同的时间执行,这将不起作用)

于 2012-05-08T13:40:20.407 回答