• 让bat批处理后台运行,不显示cmd窗口(完全静化)


    背景:由于我有某云的服务器(win server), 上面挂有好几个程序, 为了更好的监控他们, 我使用了一个最笨的方法, 就是下面的方法。

    实现:我要监控的程序有三个, 成为ABC吧, 下面先把三个程序的监控写好, 我使用的是python邮件告警和bat的进程监控

    main.vbs

    Set ws = CreateObject("Wscript.Shell")
    ws.run "cmd /c A.bat",0
    ws.run "cmd /c B.bat",0
    ws.run "cmd /c C.bat",0

    这是vbs, 作用就是在这里调用运行bat时,是进入后台运行(就是完全不在前台显示这几个bat的cmd的界面)

    main.bat

    @echo off<nul 3>nul
    :one
    echo %date:~0,10% %time:~0,-3% cheng守护进程正在监控系统...
    start main.vbs
    ping 127.0.0.1 -n 10>nul
    goto one

    留意一下就会发现, 这是一个死循环, 是的。因为我并没有打算把vbs扔进计划任务跑, 我是使用一个bat,每隔10秒 执行一下main.vsb文件, 而vbs则会去跑那三个监控告警批处理。

    第3行:显示当前系统时间与提示信息。

    第4行:运行vbs脚本。

    第5行:sleep 10秒,这是有点奇怪的写法,使用了ping中的功能。

    运行

    跑main.bat

    按照之前,不使用vbs调 直接运行那几个监控bat的时候会连续闪弹cmd窗口,现在只会看到一个cmd在运行, 后台运行的是那三个bat。

    每当检测到有进程挂的时候会第一时间发送邮件提醒。

  • 相关阅读:
    软件测试大赛决赛简讯
    期末提交作业清单
    4月12日-4月19日任务清单
    20160405
    软件系统设计文档模板
    吐槽
    致我亲爱的学生
    HBase 环境搭建
    Zookeeper 环境搭建
    hive 部署
  • 原文地址:https://www.cnblogs.com/chenglee/p/8435651.html
Copyright © 2020-2023  润新知