标题: [文本处理] 求助批处理日志生成 [打印本页]
作者: cattan 时间: 2021-7-8 10:47 标题: 求助批处理日志生成
- @echo off
-
- rem
-
- set AppName=MTC_OUT.exe
-
- set AppPath=D:\fjeit\MTC_OUT\
-
- title 出口收费软件看门狗程序
-
- cls
-
-
- echo.
-
- echo 看门狗程序每隔15分钟监控一次……
- echo 该软件用于内部交流和学习
-
- echo.
-
- rem 定义循环体
-
- :startjc
-
- rem 从进程列表中查找指定进程
-
- rem 下面语句也可写成 qprocess %AppName% >nul
- qprocess|findstr /i %AppName% >nul
-
- rem
-
- if %errorlevel%==0 (
-
- echo ^>%date:~0,10% %time:~0,8% 软件正在运行……
-
- )else (
-
- echo ^>%date:~0,10% %time:~0,8% 没有发现软件进程
-
- echo ^>%date:~0,10% %time:~0,8% 正在重新启动软件
-
- start %AppPath%%AppName% 2>nul && echo ^>%date:~0,10% %time:~0,8% 启动软件
-
- )
-
- rem 用ping命令来实现延时运行
-
- for /l %%i in (1,1,10) do ping -n 1 -w 1000 168.20.0.1>nul
-
-
-
- goto startjc
-
- echo on
复制代码
如何让这个批处理文件生成日志.txt。 不要CMD窗口啊?
作者: yakeyun 时间: 2021-7-8 13:46
本帖最后由 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
作者: cattan 时间: 2021-7-8 15:27
你这个只生成了前面(软件已退出,将重新启动。)这个日志啊
并没有生成软件运行状态的日志啊 已经测试了
作者: yakeyun 时间: 2021-7-8 16:08
本帖最后由 yakeyun 于 2021-7-8 16:23 编辑
回复 3# cattan
重新写了一个新的,试下看看。日志只会记录进程结束后重新启动的过程,本身每10秒检测一次进程,达到了实时检测,所以正常状态不用记录。
作者: yakeyun 时间: 2021-7-8 16:35
本帖最后由 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
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |