标题: [系统相关] [已解决]监控程序批处理无法监控到程序,请高人帮忙看看 谢谢 [打印本页]
作者: lion991128 时间: 2017-9-5 15:23 标题: [已解决]监控程序批处理无法监控到程序,请高人帮忙看看 谢谢
本帖最后由 lion991128 于 2017-9-6 09:50 编辑
设想很简单有2个文件夹 里面分别有2个相同名字的程序 开启时系统是不同的PID 所以kill的时候可以同时终止 开启时分别开启,主要是对这2个程序的监控,以下是我的代码 但是这个代码在运行时 会出现找不到已开始的进程会被不停的启用,还请高手看看问题出现在哪里 谢谢!!- @echo off
- setlocal enabledelayedexpansion
- :1
- tasklist |find "1.exe" >nul 2>nul
- if errorlevel 1 (
- echo 系统已挂掉
- goto 2
- ) else (
- echo 系统已开启
- )
- ping -n 20 127.1 >nul
- goto 1
-
- :2
- taskkill /f /im 1.exe
- start D:\AA\1.exe
- echo 01已启动
- ping -n 20 127.1 >nul
- start D:\AA2\1.exe
- echo 02已启动
- echo 系统于%date% %time%已经挂掉,已经重启完成>>D:\login.txt
- goto 1
复制代码
作者: lion991128 时间: 2017-9-5 17:18
问题是找到了, 不管有没有找到进程这个errorlevel的返回值一直是1 所以不停的运行程序, 但是如果判断进程的话是否还有别的办法吗???求教
作者: PS2.0 时间: 2017-9-5 21:06
回复 2# lion991128
我这里用Win7测试可以看到 errorlevel 不同的值
C:\Test>tasklist |find "1.exe" >nul 2>nul
C:\Test>echo %errorlevel%
1
C:\Test>tasklist |find "cmd.exe" >nul 2>nul
C:\Test>echo %errorlevel%
0
作者: lion991128 时间: 2017-9-6 09:47
哦谢谢 问题找到了 原来是tasklist显示进程名的时候 程序名字太长 .exe 只能显示到.ex所以进程无法找到.改到.ex就能正常返回值了, 我也是醉了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |