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

[系统相关] [己解决]批处理如何保护自己不被强制关闭?

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

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

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

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

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

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



谢谢大大。
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2
我来学习。

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

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

评分人数

    • CrLf: 乐于助人PB + 2

TOP

怎样让批处理进程用普通方法杀不掉?
http://bbs.bathome.net/thread-1596-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

谢谢你,成功了。
我来学习。

TOP

本帖最后由 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 "窗口标题"
复制代码
1

评分人数

TOP

回复 3# xjiain


    请把问题更新到一楼!~

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

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

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

如果还有什么问题,请你一次用一段话描述一个问题,一个帖子描述一个问题,不要把一堆问题放到一起,然后只是说不行,又没说出不行的现象和原因,这样很为难大家的。
1

评分人数

    • CrLf: 乐于助人PB + 2
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

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

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

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

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

激活某个窗口,就是我问的“怎样检测自己是否已经运行,避免重复运行”,现在我将BAT编译成了EXE,当重复运行后,发现自己已经运行,就激活第一个执行的CMD窗口。。不知道怎么来激活。
我来学习。

TOP

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

你这是用来做什么呢?表明你的目的。
多个无关问题最好另外发帖。
另外,标题违规,请修改,否则有被关闭的可能!~
详细请阅读:批处理之家论坛发帖规则[2009.3.6更新]
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

返回列表