Windows通过开机自启动执行bat脚本常驻python脚本

系统 1844 0

Windows通过开机自启动执行bat脚本常驻python脚本


使用schedule实现python定时任务

python中的轻量级定时任务调度库:schedule
  1. 安装: pip install schedule
  2. 使用:
  • 单一任务:
            
              import schedule
import time

# 定义要执行的任务
def job():
    print("I'm working...")

# 选择一种定时间隔
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every(5).to(10).days.do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
 
while True:
    schedule.run_pending()
    time.sleep(1)

            
          
  • 多任务

如果是多个任务运行的话,实际上它们是按照顺序从上往下挨个执行的。如果上面的任务比较复杂,会影响到下面任务的运行时间。
解决方法:用多线程/多进程。开了一条线程,就把job独立出去运行了,不会占主进程的cpu时间,schedule并没有花掉执行一个任务的时间,它的开销只是开启一条线程的时间。

            
              import datetime
import schedule
import threading
import time
 
def job1():
    print("I'm working for job1")
    time.sleep(2)
    print("job1:", datetime.datetime.now())
 
def job2():
    print("I'm working for job2")
    time.sleep(2)
    print("job2:", datetime.datetime.now())
 
def job1_task():
    threading.Thread(target=job1).start()
 
def job2_task():
    threading.Thread(target=job2).start()
 
def run():
    schedule.every(10).seconds.do(job1_task)
    schedule.every(10).seconds.do(job2_task)
 
    while True:
        schedule.run_pending()
        time.sleep(1)

            
          

编写bat执行python脚本

编写bat脚本(xxx.bat)

Example:

            
              if not "%1"=="wkdxz" mshta vbscript:createobject("wscript.shell").run("""%~f0"" wkdxz",vbhide)(window.close)&&exit
@echo off
D:\software\Anaconda3\envs\Delivery\python -i D:\test\test.py

            
          
  • 第一行作用是使批处理后台运行,即运行时不出现CMD窗口;
  • 第二行作用是不显示命令;
  • 第三行是绝对路径调用python.exe执行指定pyhon脚本

执行bat脚本

  1. 将bat脚本放置于启动项路径,开机自启动:
    Win10路径Example:
            
              C:\Users\lyuzi\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

            
          
  1. 双击运行,直接启动。

停止执行python

粗暴地直接kill掉python.exe

cmd: taskkill -f -t -im python.exe


tips:

建议在python脚本中写log记录运行情况。因为后台执行bat就不知道怎么看它有没有跑了。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论