Board logo

标题: [文本处理] 批处理如何检测程序关闭,只要程序关闭,即删除“123”文件夹? [打印本页]

作者: 天堂的伪装    时间: 2011-10-3 22:01     标题: 批处理如何检测程序关闭,只要程序关闭,即删除“123”文件夹?

检测的程序的进程是“GUA.exe” 只要程序自动退出后,就删除当前文件夹里的“123”文件夹?
现在很急用。。

检测程序随着被检测程序一起启动的,每隔3分钟检测一次,如果检测“GUA.exe”进程已经关闭,就删除当前目录下的“123”文件夹
作者: CrLf    时间: 2011-10-3 22:24

一般情况建议用批启动该程序,这是最经济的方法
Gua&rd /s /q 123
作者: 天堂的伪装    时间: 2011-10-3 22:43

本帖最后由 天堂的伪装 于 2011-10-3 23:33 编辑

回复 2# CrLf


检测程序随着被检测程序一起启动的,每隔3分钟检测一次,如果检测“GUA.exe”进程已经关闭,就删除当前目录下的“123”文件夹
作者: 小麦    时间: 2011-10-4 03:18

本帖最后由 小麦 于 2011-10-4 03:25 编辑
  1. @echo off
  2. :1
  3. @tasklist | find /i "gua.exe">nul 2>nul || rd /s /q 123 >nul 2>nul
  4. goto 1
复制代码
保存为批处理文件 。拖到当前文件夹内。运行那个程序之后,再双击此批处理。
只要那个程序退出,123文件夹就删掉了。不信你试一下!
作者: 天堂的伪装    时间: 2011-10-4 10:18

回复 4# 小麦


不行啊。。
作者: Batcher    时间: 2011-10-4 11:51

回复 5# 天堂的伪装


哪里不行?
作者: 天堂的伪装    时间: 2011-10-4 13:51

回复 6# Batcher


    我想写的是“检测程序随着被检测程序一起启动的,每隔3分钟检测一次,如果检测“GUA.exe”进程已经关闭,就删除当前目录下的“123”文件夹”。
   楼上的程序我也试过,不过没有用,程序启动完了,然后关闭,而批处理却没有做出反应。。
作者: Batcher    时间: 2011-10-4 18:34

回复 7# 天堂的伪装


你把@echo off删掉,看看是哪里出了问题。
作者: bluewing009    时间: 2011-10-4 20:48

本帖最后由 bluewing009 于 2011-10-4 20:51 编辑

额,又是实时类的问题,我还是不推荐直接用批处理来做这种监控。推荐个偏门:利用call命令。原理:call启动目标后,直到目标结束才运行下一条指令。所以,
  1. call 路径\GUA.exe
  2. rd /s /q 路径\123
复制代码

这样,你运行这个批处理,就会启动程序,并在程序结束后删除123文件夹。
当然,你想要做的更好,更漂亮,可以利用lnk或者直接IEFO劫持指向这个bat即可,这样不会影响美观和习惯性的操作。可以参考我的VMWare服务优化,就是这种方式。
作者: bluewing009    时间: 2011-10-4 20:49

本帖最后由 bluewing009 于 2011-10-4 20:53 编辑

手机操作,存在错误,帖子重复了。抱歉占楼了~
作者: 小麦    时间: 2011-10-4 23:12

回复 7# 天堂的伪装


    怎么会呢? 我自己都成功了。你再看看我的说明,需要把该批处理移到与文件夹123同目录下,如过没有的话,那就在代码中的文件夹123前补充它的路径。
作者: 小麦    时间: 2011-10-8 19:05

回复 1# 天堂的伪装


    我改动了一下 , 如果你要运行指定的那个程序,只需要双击此批处理就行了。 可以达到你的目的:
  1. @echo off
  2. start 路径\GUA.exe
  3. cls
  4. :1
  5. @tasklist | find /i "gua.exe">nul 2>nul || rd /s /q 路径\123 >nul 2>nul
  6. goto 1
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2