找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 79497|回复: 20

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

[复制链接]
发表于 2011-7-19 15:38:09 | 显示全部楼层 |阅读模式
本帖最后由 xslxslxsl 于 2011-8-17 12:03 编辑

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

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-7-19 15:42:33 | 显示全部楼层
进程,监控
搜索“进程”
 楼主| 发表于 2011-7-19 16:10:12 | 显示全部楼层
2# cjiabing 望版主解释的详细些好吗?具体如何实现呢?谢谢!
发表于 2011-7-19 16:17:13 | 显示全部楼层
3# xslxslxsl 假设你运行的程序是123.exe,用批处理进程监控,假如发现该程序没有运行,则重启该程序。
批处理如何监控进程呢?正式的说法是用tasklist,但发现以前有人这样子:


  1. @echo off
  2. :1
  3. "C:\123.exe"
  4. goto 1
复制代码
发表于 2011-7-19 16:59:04 | 显示全部楼层
一般可以这样:
  1. for /l %%a in () do a.exe
复制代码
不排除某些软件启动后马上换“马甲”导致无限弹窗的可能
发表于 2011-7-19 17:01:38 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-7-20 13:28:13 | 显示全部楼层
4# cjiabing
谢谢解答,版主,"C:\123.exe",为什么加引号啊?
发表于 2011-7-20 13:36:03 | 显示全部楼层
7# xslxslxsl
我改以前的东西,忘记删掉了。
不过当你替换为自己的程序,而程序的路径有空格时,需要加双引号的。
 楼主| 发表于 2011-7-20 17:22:41 | 显示全部楼层
8# cjiabing
哦,好的,谢谢,再次谢谢大家!
 楼主| 发表于 2011-7-20 17:41:50 | 显示全部楼层
6# tmplinshi 麻烦版主解释一下哦,为什么我执行后什么都没有,也不见程序运行,进程中有CMD,望指教,谢谢!
 楼主| 发表于 2011-7-20 21:18:32 | 显示全部楼层
6# tmplinshi tmplinshi 版主,麻烦解释一下哦,谢谢!
 楼主| 发表于 2011-7-20 21:57:51 | 显示全部楼层
6# tmplinshi
版主,刚才我试了一下,怎么不会运行记事本的程序啊,我是WIN7的系统下,麻烦解释一下,谢谢!
发表于 2011-7-21 10:00:57 | 显示全部楼层
抱歉,的确有这个问题。已修改代码。
 楼主| 发表于 2011-7-21 13:29:56 | 显示全部楼层
13# tmplinshi 非常感谢,没有关系,我再试试看,嘻嘻!谢谢!
发表于 2011-7-21 14:36:37 | 显示全部楼层

一个偏门方法

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

启动时用call命令,因为程序在运行,所以启动的批处理就停在call行上(call 与start区别),程序退出时在继续下一条。这样也就能“监控”到程序终止了…………
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 00:30 , Processed in 0.018131 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表