Board logo

标题: [系统相关] [己解决]批处理如何保护自己不被强制关闭? [打印本页]

作者: xjiain    时间: 2011-8-3 13:08     标题: [己解决]批处理如何保护自己不被强制关闭?

本帖最后由 xjiain 于 2011-8-4 16:55 编辑

目的就是对大文件进行处理,小说之类的。

执行过程中,会产生临时文件,如果不能强制关闭最好,但是能的话,强制关闭时,就会停止,但是我想也把临时文件也一并删除。免得停止后,手动删除。

问题1:批处理,可以在强制关闭时,执行某一段代码,例如上面的删除临时文件。

问题2:可否让批处理,不能被强制关闭。

还有就是,当一个批处理只能有一个进程,不能同时产生两个进程,当第二个进程开始后,发现自己已经在运行了,能不能将第一个进程的CMD窗口,激活



谢谢大大。
作者: cjiabing    时间: 2011-8-3 13:16

本帖最后由 cjiabing 于 2011-8-3 13:21 编辑

你这是用来做什么呢?表明你的目的。
多个无关问题最好另外发帖。
另外,标题违规,请修改,否则有被关闭的可能!~
详细请阅读:批处理之家论坛发帖规则[2009.3.6更新]
作者: xjiain    时间: 2011-8-3 13:38

本帖最后由 xjiain 于 2011-8-3 13:44 编辑

目的就是对大文件进行处理,小说之类的。

执行过程中,会产生临时文件,如果不能强制关闭最好,但是能的话,强制关闭时,就会停止,但是我想也把临时文件也一并删除。免得停止后,手动删除。

标题违规,哪我这三个问题该怎么写标题呢,我也不想直接开三个贴子,免得浪费。

激活某个窗口,就是我问的“怎样检测自己是否已经运行,避免重复运行”,现在我将BAT编译成了EXE,当重复运行后,发现自己已经运行,就激活第一个执行的CMD窗口。。不知道怎么来激活。
作者: cjiabing    时间: 2011-8-3 13:59

回复 3# xjiain


    请把问题更新到一楼!~

第一个问题:激活某窗口
      批处理不善于处理这种问题,用vbs,不过我不懂。

第二个问题:禁止关闭自身与临时文件清理
      禁止关闭自身也是一个超出了批处理处理范围的问题,建议搜索论坛,相关内容论坛还是有很多的。
      清理临时文件很简单的啊,找到你写的临时文件地址,用del命令删除就是了。这个就不必提问了吧?

第三个问题:不懂你是什么问题了!~
      关于一次只允许运行一个相同的程序,不能同时打开两个进程,这个问题在昨天你发的帖子里已经回答了,或者参考教学区的《批处理与进程》。
      即使你编译成exe后的问题,你没有说明是什么问题,因此,问题就不在重复回答了。

如果还有什么问题,请你一次用一段话描述一个问题,一个帖子描述一个问题,不要把一堆问题放到一起,然后只是说不行,又没说出不行的现象和原因,这样很为难大家的。
作者: tmplinshi    时间: 2011-8-3 15:05

本帖最后由 tmplinshi 于 2011-8-3 15:16 编辑

问题1:
  1. @echo off
  2. for /f "tokens=3" %%a in ('cmdow @ /b') do (
  3.     rem 批处理被关闭后运行 DelTmp.bat
  4.         start nircmd waitprocess /%%a exec hide DelTmp.bat
  5.     rem 或者直接用 nircmd 来执行命令:
  6.     rem start nircmd waitprocess /%%a execmd del "d:\*.tmp"
  7. )
  8. pause
复制代码
问题2:
可以禁止 cmd 窗口的关闭按钮,或者禁止 cmd 窗口 (cmdow @ /dis)。
要禁止 cmd 窗口的 Ctrl+C,我目前能想到的是,编写一个 AutoHotkey 程序,但要一直运行。

激活窗口可以用 cmdow 或 nicmd:
  1. cmdow "窗口标题" /act
复制代码
  1. nircmd win activate title "窗口标题"
复制代码

作者: xjiain    时间: 2011-8-3 15:30

谢谢你,成功了。
作者: Batcher    时间: 2011-8-3 22:40

怎样让批处理进程用普通方法杀不掉?
http://bbs.bathome.net/thread-1596-1-1.html
作者: wolfan    时间: 2011-8-4 18:35

http://www.bathome.net/thread-13352-1-1.html

奴家的方法,通过FIND CMD:TITLE名来检测,不过好像不太好用,有代改进的说。




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