[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 求助批处理日志生成

  1. @echo off
  2. rem
  3. set AppName=MTC_OUT.exe
  4. set AppPath=D:\fjeit\MTC_OUT\
  5. title 出口收费软件看门狗程序
  6. cls
  7. echo.
  8. echo 看门狗程序每隔15分钟监控一次……
  9. echo 该软件用于内部交流和学习
  10. echo.
  11. rem 定义循环体
  12. :startjc
  13.    rem 从进程列表中查找指定进程
  14.    rem  下面语句也可写成 qprocess %AppName% >nul
  15.    qprocess|findstr /i %AppName% >nul
  16.    rem
  17.    if %errorlevel%==0 (
  18.          echo ^>%date:~0,10% %time:~0,8% 软件正在运行……
  19.     )else (
  20.            echo ^>%date:~0,10% %time:~0,8% 没有发现软件进程
  21.            echo ^>%date:~0,10% %time:~0,8% 正在重新启动软件
  22.            start %AppPath%%AppName% 2>nul && echo ^>%date:~0,10% %time:~0,8% 启动软件
  23.    )
  24.    rem 用ping命令来实现延时运行
  25.    for /l %%i in (1,1,10) do ping -n 1 -w 1000 168.20.0.1>nul
  26.    goto startjc
  27. echo on
复制代码
如何让这个批处理文件生成日志.txt。 不要CMD窗口啊?

本帖最后由 yakeyun 于 2021-7-8 16:13 编辑

@echo off
::隐藏窗口
if "%1" neq "1" (
>"%temp%\tmp.vbs" echo set WshShell = WScript.CreateObject^(^"WScript.Shell^"^)
>>"%temp%\tmp.vbs" echo WshShell.Run chr^(34^) ^& %0 ^& chr^(34^) ^& ^" 1^",0
start /d "%temp%" tmp.vbs
exit
)
::执行代码
title 出口收费软件看门狗程序
::从进程列表中查找指定进程
:start
tasklist /nh>C:\kill.ini
@find /I /C "MTC_OUT.exe" C:\kill.ini > nul
if %ERRORLEVEL% == 0 (
  ping 127.1 -n 10 >nul
  goto start
) else (
  goto END
)
:END
start D:\fjeit\MTC_OUT\MTC_OUT.exe
echo %date%%time%   程序已退出,将重新启动! >>c:\log.ini
ping 127.1 -n 10 >nul
goto start
)
exit

TOP

你这个只生成了前面(软件已退出,将重新启动。)这个日志啊
并没有生成软件运行状态的日志啊 已经测试了

TOP

本帖最后由 yakeyun 于 2021-7-8 16:23 编辑

回复 3# cattan


   重新写了一个新的,试下看看。日志只会记录进程结束后重新启动的过程,本身每10秒检测一次进程,达到了实时检测,所以正常状态不用记录。

TOP

本帖最后由 yakeyun 于 2021-7-9 01:03 编辑

回复 3# cattan


如果一定要都记录,就用这个15分钟检测一次进程:

@echo off
::隐藏窗口
if "%1" neq "1" (
>"%temp%\tmp.vbs" echo set WshShell = WScript.CreateObject^(^"WScript.Shell^"^)
>>"%temp%\tmp.vbs" echo WshShell.Run chr^(34^) ^& %0 ^& chr^(34^) ^& ^" 1^",0
start /d "%temp%" tmp.vbs
exit
)
::执行代码
title 出口收费软件看门狗程序
::从进程列表中查找指定进程
:start
tasklist /nh>C:\kill.ini
@find /I /C "MTC_OUT.exe" C:\kill.ini > nul
if %ERRORLEVEL% == 0 (
echo %date%%time%   当前程序进程正常运行。 >>c:\log.ini
ping 127.1 -n 900 >nul
goto start
) else (
goto END
)
:END
start D:\fjeit\MTC_OUT\MTC_OUT.exe
echo %date%%time%   程序已退出,将重新启动! >>c:\log.ini
ping 127.1 -n 900 >nul
goto start
)
exit

TOP

返回列表