当前位置: 首页 > 知识库问答 >
问题:

如何计划不使用Windows任务计划程序运行bat文件?

金珂
2023-03-14

我有一个批处理(*. bat)文件,触发一个Python脚本,这个脚本需要大约25分钟来完成交互式(通过命令提示符手动)。这个批处理文件需要每天早上运行。

当我尝试在Windows任务调度器上将其设置为计划任务并在那里运行时,所用的时间几乎是交互时的两倍。即使我在xml中将优先级设置从默认的7设置为4(更高的优先级),也没有任何区别。更改优先级设置仅适用于I/O优先级,但不适用于内存优先级,内存优先级仍保持在4(交互运行的1级为5)。内存优先级在支持长进程方面起着重要作用。

我想知道是否有一种方法来触发蝙蝠文件作为一个计划的任务,但不使用任务调度器,替代程序的任务调度器或脚本?

共有2个答案

和和煦
2023-03-14

由于上面没有退出策略,并且延迟了至少25分钟,因此此批处理文件代码可能更适合您的需要,将引用放入登录批处理或其他触发器中。。。

@echo off
:loop
set timeHrs=%time:~0,2%
set timeMin=%time:~3,2%
set timeSec=%time:~6,2%

if "%timeHrs%" geq 6 if "%timeHrs%" leq 9 (
    [command to trigger Python script]
    exit /b 0
)

timeout /t 1500
goto loop
夏华藏
2023-03-14

超时可能是一个很好的命令,可以在没有任务调度器的情况下安排任务。

timeout /t 1500
[command to trigger Python script]

因此,如果您希望此批处理文件需要在早上运行...,您也可以设置开始时间和结束时间:

set timeHrs=%time:~0,2%
set timeMin=%time:~3,2%
set timeSec=%time:~6,2%

[insert timeout command]

if "%timeHrs%" geq 6 if "%timeHrs%" leq 9 [command to trigger Python script]
rem The above command is check if Hour is in 6-9 (in morning).

如果你愿意,那么你可以复制下面的代码(你可能也必须编辑代码):

@echo off
:loop
set timeHrs=%time:~0,2%
set timeMin=%time:~3,2%
set timeSec=%time:~6,2%

timeout /t 1500

if "%timeHrs%" geq 6 if "%timeHrs%" leq 9 [command to trigger Python script]
goto loop

您还希望在代码中添加出口,但我认为您不需要它,只需让代码每天运行即可。

 类似资料:
  • 我有一些可执行文件要安排在Windows任务调度程序中运行。他们的输出必须在某处看到。通过Windows任务计划程序运行应用程序时,程序的输出将丢失。如何捕获此输出?我做了谷歌搜索,找到了破解方法,改为运行cmd并将输出重定向到日志文件,但我无法将这些信息很好地保存在XML文件中,我应该能够在任务调度程序中注册,因此我需要一种更好的方法。 任何帮助都将不胜感激。

  • 我试图让一个任务在Windows调度程序运行每10分钟。 下图中有两条蓝线,这只是一个任务,但我在刷新页面后的不同时间截图了它们。 正如您可以在图像任务调度器中看到的,在最后运行时间下的底部蓝线上显示为下午3:37,下一个运行时间为下午5:02。然后在顶部蓝线上,我在下午5:02之后有一个相同任务的屏幕截图,它没有更新上一次运行时间,但它将下一次运行时间向前推了10分钟。 如果我右键单击任务并手动

  • 我们有一个程序,客户声称文件没有在应该生成的时候生成,只是在一天中很晚才出现。 我想知道这是否是因为任务调度程序的安排。 任务计划在每天下午12:23开始,然后无限期地每5分钟执行一次。 考虑到日程安排,并将其设置为每天运行,在00:00:00-12:23:00的时间内会发生什么? 前一天的日程是否因为“无限期”的设定而一直运行到第二天? 或者,由于任务设置为每天运行,前一天的计划是否在00:00

  • 我有几个批处理文件,用于设置日志文件路径并启动visual studio 2010 ordertests。当我从windows资源管理器执行批处理文件时,它运行良好。问题在于,当我使用Windows任务调度程序运行批处理文件时,orderedtest没有执行。 示例代码: 操作系统:Windows 7/2008 r2 任务计划程序配置映像: > 常规: 设置: 条件: 编辑操作: 编辑触发器:

  • 我有一个批处理文件,用于启动使用IEDriverServer的Selenium脚本(用Java编写)。当我从命令行运行该批处理文件时,脚本按预期工作。但是,当我使用Windows任务调度程序运行完全相同的批处理文件时,脚本在WebDriverWait直到语句期间超时: 我发现了这个堆栈溢出帖子: Selenium在Windows Server上按计划任务运行 这表明将作业设置为“无论用户是否登录都

  • > 我需要在执行前一个任务后以不同的延迟一个接一个地运行计划的任务。示例。有一个任务列表和延迟列表。 现在我需要运行task1通过100ms,task2在task1之后通过9ms,task3在task2之后通过22ms等等。 我正在使用javafx。任务可以使用一些UI更新方法,例如更改节点位置。这迫使我使用平台。runLater()方法,因为如果不这样做,则会出现异常“Not on FX app