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

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

[复制链接]
发表于 2011-8-3 13:08:26 | 显示全部楼层 |阅读模式
本帖最后由 xjiain 于 2011-8-4 16:55 编辑

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

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

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

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

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



谢谢大大。

评分

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

查看全部评分

发表于 2011-8-3 13:16:39 | 显示全部楼层
本帖最后由 cjiabing 于 2011-8-3 13:21 编辑

你这是用来做什么呢?表明你的目的。
多个无关问题最好另外发帖。
另外,标题违规,请修改,否则有被关闭的可能!~
详细请阅读:批处理之家论坛发帖规则[2009.3.6更新]
 楼主| 发表于 2011-8-3 13:38:35 | 显示全部楼层
本帖最后由 xjiain 于 2011-8-3 13:44 编辑

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

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

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

激活某个窗口,就是我问的“怎样检测自己是否已经运行,避免重复运行”,现在我将BAT编译成了EXE,当重复运行后,发现自己已经运行,就激活第一个执行的CMD窗口。。不知道怎么来激活。
发表于 2011-8-3 13:59:51 | 显示全部楼层
回复 3# xjiain


    请把问题更新到一楼!~

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

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

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

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

评分

参与人数 1PB +2 收起 理由
CrLf + 2 乐于助人

查看全部评分

发表于 2011-8-3 15:05:31 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-8-3 15:30:31 | 显示全部楼层
谢谢你,成功了。
发表于 2011-8-3 22:40:23 | 显示全部楼层
怎样让批处理进程用普通方法杀不掉?
http://bbs.bathome.net/thread-1596-1-1.html
发表于 2011-8-4 18:35:52 | 显示全部楼层
http://www.bathome.net/thread-13352-1-1.html

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

评分

参与人数 1PB +2 收起 理由
CrLf + 2 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 02:03 , Processed in 0.010092 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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