标题: [其他] [已解决]批处理如何让程序退出后再次运行,保持一直运行? [打印本页]
作者: xslxslxsl 时间: 2011-7-19 15:38 标题: [已解决]批处理如何让程序退出后再次运行,保持一直运行?
本帖最后由 xslxslxsl 于 2011-8-17 12:03 编辑
因为我电脑上有一个软件程序,它在运行一段时间后就会自动退出,但是我想让它一直保持运行状态,不让它退出,所以能不能用批处理实现如下功能:让该程序一直在运行,若退出后,能自动再次启动。谢谢,望大家给予帮助,再次感谢!
作者: cjiabing 时间: 2011-7-19 15:42
进程,监控
搜索“进程”
作者: xslxslxsl 时间: 2011-7-19 16:10
2# cjiabing 望版主解释的详细些好吗?具体如何实现呢?谢谢!
作者: cjiabing 时间: 2011-7-19 16:17
3# xslxslxsl 假设你运行的程序是123.exe,用批处理进程监控,假如发现该程序没有运行,则重启该程序。
批处理如何监控进程呢?正式的说法是用tasklist,但发现以前有人这样子:
- @echo off
- :1
- "C:\123.exe"
- goto 1
复制代码
作者: CrLf 时间: 2011-7-19 16:59
一般可以这样:- for /l %%a in () do a.exe
复制代码
不排除某些软件启动后马上换“马甲”导致无限弹窗的可能
作者: tmplinshi 时间: 2011-7-19 17:01
本帖最后由 tmplinshi 于 2011-7-21 17:52 编辑
需下载 http://www.nirsoft.net/utils/nircmd.zip- @echo off
-
- set app="C:\WINDOWS\system32\notepad.exe"
-
- :: ------------- 隐藏批处理窗口 -------------
- set title=[keep app running]
- title %title%
- nircmdc win hide title "%title%"
- :: ------------- / 隐藏批处理窗口 -------------
-
- nircmdc waitprocess %app%
-
- for /l %%a in () do %app%
复制代码
作者: xslxslxsl 时间: 2011-7-20 13:28
4# cjiabing
谢谢解答,版主,"C:\123.exe",为什么加引号啊?
作者: cjiabing 时间: 2011-7-20 13:36
7# xslxslxsl
我改以前的东西,忘记删掉了。
不过当你替换为自己的程序,而程序的路径有空格时,需要加双引号的。
作者: xslxslxsl 时间: 2011-7-20 17:22
8# cjiabing
哦,好的,谢谢,再次谢谢大家!
作者: xslxslxsl 时间: 2011-7-20 17:41
6# tmplinshi 麻烦版主解释一下哦,为什么我执行后什么都没有,也不见程序运行,进程中有CMD,望指教,谢谢!
作者: xslxslxsl 时间: 2011-7-20 21:18
6# tmplinshi tmplinshi 版主,麻烦解释一下哦,谢谢!
作者: xslxslxsl 时间: 2011-7-20 21:57
6# tmplinshi
版主,刚才我试了一下,怎么不会运行记事本的程序啊,我是WIN7的系统下,麻烦解释一下,谢谢!
作者: tmplinshi 时间: 2011-7-21 10:00
抱歉,的确有这个问题。已修改代码。
作者: xslxslxsl 时间: 2011-7-21 13:29
13# tmplinshi 非常感谢,没有关系,我再试试看,嘻嘻!谢谢!
作者: bluewing009 时间: 2011-7-21 14:36 标题: 一个偏门方法
本帖最后由 bluewing009 于 2011-7-21 14:56 编辑
启动时用call命令,因为程序在运行,所以启动的批处理就停在call行上(call 与start区别),程序退出时在继续下一条。这样也就能“监控”到程序终止了…………
作者: xslxslxsl 时间: 2011-7-21 17:25
6# tmplinshi
版主,这样不行的啊,一直在执行打开记事本的程序啊,打开了,它还是继续打开,麻烦再看看,谢谢帮忙!
作者: tmplinshi 时间: 2011-7-21 17:54
6# tmplinshi
版主,这样不行的啊,一直在执行打开记事本的程序啊,打开了,它还是继续打开,麻烦再看看,谢谢帮忙!
xslxslxsl 发表于 2011-7-21 17:25
已修改代码。这下应该不会有问题了。
作者: xslxslxsl 时间: 2011-7-21 22:29
17# tmplinshi
版主,试过了,这下可以了,谢谢!
作者: xslxslxsl 时间: 2011-7-27 16:25
回复 6# tmplinshi
版主,如果在这个代码的基础上,我想统计并显示出,其运行notepad.exe 的次数话,该如何书写啊,谢谢!
作者: tmplinshi 时间: 2011-7-27 16:37
回复 19# xslxslxsl - @echo off
-
- set app="C:\WINDOWS\system32\notepad.exe"
-
- :: ------------- 隐藏批处理窗口 -------------
- set title=[keep app running]
- title %title%
- nircmdc win hide title "%title%"
- :: ------------- / 隐藏批处理窗口 -------------
-
- nircmdc waitprocess %app%
-
- set n=
-
- :loop
- set /a n += 1
- cls
- echo %n%
-
- :: 或者输出到文件
- >运行次数.txt echo %n%
-
- %app%
- goto loop
复制代码
作者: xslxslxsl 时间: 2011-7-27 23:14
回复 20# tmplinshi
版主你太厉害了,唉,这差距何时可以缩短啊,学习......再学习,再次感谢你,谢谢你的帮助,以前你也帮助很多了,谢谢,理当要再认真学习!对了,再谢谢热心的版主!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |