我如何从命令行创build一个只按需运行的计划任务?

我试图复制本文中的步骤来创build一个快捷方式来启动一个没有UAC提示的程序,但是我想从命令行创build任务。

这里是我正在使用的schtasks.exe命令:

schtasks /create /tn MyTaskName /tr "c:\MyApplication.exe" /sc ONCE /st 00:00 /RL HIGHEST /RU BUILTIN\Administrators 

/sc/st开关正在使我绊倒。 我不想指定一个时间表或一个开始时间,但只能按需运行任务。

您可以随时指定“/ sd 01/01/1901”,并指定过去发生的date。 它应该抱怨“警告:由于/ ST早于当前时间,任务可能无法运行。” 原因很明显 但是,如果没有你的干预,它永远不会有效运行,因为它永远不会触发时间表的执行。

由于调度程序不喜欢这个,所以你不能忽略时间(AFAIK)。 这对于调度程序是有点违反直觉的。

你有没有尝试过创build快捷方式与程序和选项,你想运行没有UAC。 然后去快捷方式的属性,高级,然后“以pipe理员身份运行”?

我使用这种技术来改变我通常需要提升访问权限的IP路由的BAT文件。

我创build了一个XML模板,删除了“触发器”节点。

创build计划任务XML文件:

  • 在GUI中,右键单击任务并select导出。
  • 在命令行中…

    schtasks / query / xml / tn“任务名称”> c:\ path \ task.xml

要删除触发器并进行其他更改:

  • 在可理解UTF-16的文本编辑器中打开XML文件。

    记事本c:\ path \ task.xml

  • 删除从开始直到包含该行的行。

  • 保存文件。

要导入任务XML文件,编辑之后:

  • 在GUI中,select要添加任务的分支,然后单击“操作”菜单并select“导入任务”。
  • 在命令行中…

    schtasks / create / tn“任务名称”/ xml c:\ path \ task.xml