序言

用bat执行脚本感觉不像一个程序,程序设计人员还是把执行程序写在编译语言里高级。编译语言可以加入定时任务、触发逻辑、程序执行逻辑、结果上报逻辑等等。还是exe的程序高级哦。

package main

import (
   "flag"
   "fmt"
   "os"
   "os/exec"
   "strconv"
   "time"
)

var pfileFlag = flag.String("pfile", "", "Description")
var phourFlag = flag.String("phour", "", "Description")

func main() {
   flag.Parse()

   pythonFile := *pfileFlag
   pythonHour := *phourFlag
   fmt.Println("goAppH5.exe -pfile=fetch_log -phour=11 ")
   if len(pythonFile) == 0 {
      pythonFile = "fetch_log"
   }
   var setHour int
   if len(pythonHour) > 0 {
      setHour, _ = strconv.Atoi(pythonHour)
   } else {
      setHour = 11
   }

   nowTimeInt := time.Now().Hour() //小时

   if nowTimeInt <= setHour {
      println(strconv.Itoa(setHour) + "点之前此程序不运行")
      os.Exit(1)
   }

   cmdLine := "python ./" + pythonFile + ".py"
   fmt.Println(cmdLine)
   cmd := exec.Command("cmd.exe", "/c", "start "+cmdLine)
   err := cmd.Run()
   fmt.Printf("%s, error:%v \n", cmdLine, err)
   time.Sleep(time.Duration(2) * time.Second)
}

golang调用python写的采集app到h5的脚本程序

package main

import (
   "flag"
   "fmt"
   "os"
   "os/exec"
   "strconv"
   "time"
)

var pfileFlag = flag.String("pfile", "", "Description")
var phourFlag = flag.String("phour", "", "Description")

func main() {
   flag.Parse()

   pythonFile := *pfileFlag
   pythonHour := *phourFlag
   fmt.Println("goAppH5.exe -pfile=fetch_log -phour=11 ")
   if len(pythonFile) == 0 {
      pythonFile = "exe_mouse_loop_app-h5"
   }
   var setHour int
   if len(pythonHour) > 0 {
      setHour, _ = strconv.Atoi(pythonHour)
   } else {
      setHour = 11
   }

   nowTimeInt := time.Now().Hour() //小时

   if nowTimeInt >= setHour {
      println(strconv.Itoa(setHour) + "点之后此程序不运行")
      os.Exit(1)
   }

   cmdLine := "python ./" + pythonFile + ".py"
   fmt.Println(cmdLine)
   cmd := exec.Command("cmd.exe", "/c", "start "+cmdLine)
   err := cmd.Run()
   fmt.Printf("%s, error:%v \n", cmdLine, err)
   time.Sleep(time.Duration(2) * time.Second)
}
总结

采集程序千万别做成一堆bat脚本文件,建议做一成exe程序。这样看起来更有调理。