![我无法让任务计划程序中的重复选项发挥作用](https://linux22.com/image/629820/%E6%88%91%E6%97%A0%E6%B3%95%E8%AE%A9%E4%BB%BB%E5%8A%A1%E8%AE%A1%E5%88%92%E7%A8%8B%E5%BA%8F%E4%B8%AD%E7%9A%84%E9%87%8D%E5%A4%8D%E9%80%89%E9%A1%B9%E5%8F%91%E6%8C%A5%E4%BD%9C%E7%94%A8.png)
该任务应该每分钟运行一个.js文件。
为了实现这一目标,我制定了任务每天跑步00:00 和每 1 分钟重复一次。
然而,现在的任务始终是地位的跑步无需实际做任何事情,上次运行结果是0x41301(无法运行,因为它已经正在运行)。
我尝试为每分钟(连续几分钟)制作一个触发器,这有效。脚本每分钟运行一次(连续几分钟),但我无法为一天中的每一分钟制作一个触发器……
当我使用重复过程执行程序正在不断运行,这就是问题所在——当我每分钟都有一个触发器时,每次运行后该过程都会自行结束。
但是当我使用重复时,它永远不会结束该过程,因此无法再次运行该脚本。(因此出现错误:0x41301)
我以为我可以通过选择来解决这个问题如果任务已在运行,则适用以下规则: 选项停止现有实例- 但是,这并不适用于每次重复,它仅适用于每天任务开始时 - 我认为;毕竟这个选项不起作用。
当我使用重复时,.js 脚本根本不运行(甚至一次也不运行);如果确实如此,那么我会让它终止进程执行程序完成后。
那么我该如何解决这个问题?
编辑:
尝试制作 .vbs 脚本和批处理程序以查明是任务还是脚本有问题后,我发现什么都不起作用 - 因此我的结论是错误在于任务本身。
我甚至尝试从任务中直接启动 Internet Explorer,但那也没有用。
也就是说:一切都正常,但重复激活时则不行 <-任何形式的重复,我尝试了许多重复和其他设置的可能组合,但没有任何效果。
是否有一条不为公众所知的秘密规则,规定每当激活重复时,脚本必须用希腊文倒写?因为我试过了,但没有用!
答案1
解决方案相当简单,但并不明显。
我原来的VBS脚本基本上是这样的:
Set objExplorer = WScript.CreateObject _("InternetExplorer.Application", "IE_")
objExplorer.Navigate "https://domain.com/place/?token=key"
'Make window invisible
objExplorer.Visible = 0
'Wait for URL to load properly, then quit
WScript.Sleep 6000
objExplorer.quit
该脚本使用 Internet Explorer 加载网站 - 它可以工作,但是当我重复执行该任务时它却不起作用。
我仍然不清楚它为什么不起作用,但我想重复的使用会在同一个“任务”中一次又一次地打开 Internet Explorer,并使用相同的临时内存(或其他东西),然后每次重复都会发现没有必要加载网站,因为它已经在内存中了...
这可能不正确,但我通过用以下脚本替换脚本解决了该问题:
On Error Resume Next
dim ObjRequest
dim URL
URL = "https://domain.com/place/?token=key"
CreateObject("Microsoft.XMLHTTP")
objRequest.open "GET", URL, false
objRequest.Send
Set objRequest = Nothing
现在一切都运转正常。