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

时间:2017-12-18 01:51:08

标签: python batch-file command scheduled-tasks taskscheduler

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

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

我想知道是否有办法将bat文件作为计划任务触发但不使用任务计划程序,任务计划程序或脚本的替代程序?

2 个答案:

答案 0 :(得分:0)

'超时'可能是一个很好的命令,可以在没有任务计划程序的情况下安排任务。

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

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

答案 1 :(得分:0)

由于上面没有退出策略并且至少延迟了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
相关问题