golang 1.20.13 定时执行bat shell 脚本

golang 1.20.13 定时执行bat shell 脚本

复制代码
package main

import (
    "fmt"
   _ "github.com/CodyGuo/godaemon"
    "os/exec"
    "time"
)

func main() {
    // 设置定时任务的时间
    t := time.Now()
    next := time.Date(t.Year(), t.Month(), t.Day(), 13, 53, 0, 0, t.Location())
    if t.After(next) { // 如果现在已经是今天的17点之后,则设置为明天的17点
        next = next.AddDate(0, 0, 1)
    }

    // 计算下次执行的等待时间
    d := next.Sub(t)

    // 启动定时器
    time.AfterFunc(d, func() {
        for {
            // 执行批处理脚本
            cmd := exec.Command("E:\\tables\\LoggerOperate_sql.bat")
            err := cmd.Run()
            if err != nil {
                fmt.Printf("Error: %s\n", err)
            }

            // 等待一天结束,然后再次执行
            time.Sleep(24 * time.Hour)
        }
    })

    // 阻塞主goroutine
    select {}
}
复制代码

 

go build -o .\cron_LoggerOperate.exe -ldflags "-s -w -H=windowsgui" .\cron.go

posted @   zhaoguanhao  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示