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

[其他] [已解决]批处理如何让程序退出后再次运行,保持一直运行?

本帖最后由 xslxslxsl 于 2011-8-17 12:03 编辑

因为我电脑上有一个软件程序,它在运行一段时间后就会自动退出,但是我想让它一直保持运行状态,不让它退出,所以能不能用批处理实现如下功能:让该程序一直在运行,若退出后,能自动再次启动。谢谢,望大家给予帮助,再次感谢!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

进程,监控
搜索“进程”
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

2# cjiabing 望版主解释的详细些好吗?具体如何实现呢?谢谢!

TOP

3# xslxslxsl 假设你运行的程序是123.exe,用批处理进程监控,假如发现该程序没有运行,则重启该程序。
批处理如何监控进程呢?正式的说法是用tasklist,但发现以前有人这样子:


  1. @echo off
  2. :1
  3. "C:\123.exe"
  4. goto 1
复制代码
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

一般可以这样:
  1. for /l %%a in () do a.exe
复制代码
不排除某些软件启动后马上换“马甲”导致无限弹窗的可能

TOP

本帖最后由 tmplinshi 于 2011-7-21 17:52 编辑

需下载 http://www.nirsoft.net/utils/nircmd.zip
  1. @echo off
  2. set app="C:\WINDOWS\system32\notepad.exe"
  3. :: ------------- 隐藏批处理窗口 -------------
  4. set title=[keep app running]
  5. title %title%
  6. nircmdc win hide title "%title%"
  7. :: ------------- / 隐藏批处理窗口 -------------
  8. nircmdc waitprocess %app%
  9. for /l %%a in () do %app%
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

4# cjiabing
谢谢解答,版主,"C:\123.exe",为什么加引号啊?

TOP

7# xslxslxsl
我改以前的东西,忘记删掉了。
不过当你替换为自己的程序,而程序的路径有空格时,需要加双引号的。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

8# cjiabing
哦,好的,谢谢,再次谢谢大家!

TOP

6# tmplinshi 麻烦版主解释一下哦,为什么我执行后什么都没有,也不见程序运行,进程中有CMD,望指教,谢谢!

TOP

6# tmplinshi tmplinshi 版主,麻烦解释一下哦,谢谢!

TOP

6# tmplinshi
版主,刚才我试了一下,怎么不会运行记事本的程序啊,我是WIN7的系统下,麻烦解释一下,谢谢!

TOP

抱歉,的确有这个问题。已修改代码。

TOP

13# tmplinshi 非常感谢,没有关系,我再试试看,嘻嘻!谢谢!

TOP

一个偏门方法

本帖最后由 bluewing009 于 2011-7-21 14:56 编辑

启动时用call命令,因为程序在运行,所以启动的批处理就停在call行上(call 与start区别),程序退出时在继续下一条。这样也就能“监控”到程序终止了…………

TOP

返回列表