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

批处理如何检测自己已运行,及其它?[半解决]

本帖最后由 wolfan 于 2011-7-23 16:37 编辑

BAT可不可以检测自己是否以运行。

还有,如何在开户BAT时,创建一个文件来标示A。BAT正在运行,如果强关(不用指令)退出的话,在由一个隐藏的B。BAT来重启A。BAT呢?

补充:不是做XXOO,不过也可以用做其中模块之一的说。就是想让俺U盘有个BAT常用开以遍快速调用的说。


补充II:刚刚想到用 tasklist 来写检测得到 A.bat 的 title-Name 作为 tag 的标记,B.bat循环检察tasklist列表中是否有此标记来决定是否启动。
小dome
  1. =a.bat
  2. title do.aBox.bat
  3. tasklist /v | find /i "do.aBox.bat" > do.sys
  4. =b.bat
  5. :top
  6. tasklist /v | find /i "do.aBox.bat" || start a.bat
  7. ping 127.1 -n 60 >nul
  8. goto top
复制代码
花喵~ a.bat中的写入do.sys 中好像无意义了~ 花喵,看来确实是小学没好好上课~ 头晕~


大人~ 请看下,这样做是不是可以确保自检重启呢~ 
如果可以,请改下标题的说~ 
人家小白做泡菜去~ 

哦` 抱歉,小学没学好,优甚语文。

关于自检,是这样的。
当A。BAT运行的时候,会在%Systemdir%中创建一个 TAG 空文件,做为标记,同时在创建一个B。BAT,并启动它(MIN后台运行)由B。BAT来监视A是否以运行,如果A关闭,而 TAG 空文件又没删除,那就重A。BAT。直到A。BAT通过指令删除了TAG(同时也可以关闭B。BAT)后才算是真正关闭。

归结下就是 创建,和检测 标记TAG来确定A。BAT的运行与否。
小白菜试了下,可是太幼小了,老是错误中。。。泣。

俺用MD创建,FIND来检测。
想应该完全可通过BAT来实现,不用每三方。

TOP

自己试卷也了个小DOME~ 反正是逻辑混乱~
啊还是当泡菜去好了,那个要~
  1. Name=do.bat
  2. :open
  3. copy %0% %windir%
  4. :inDO.sys
  5. echo %date% >do.sys
  6. :inMIN
  7. echo :top >doMIN.bat
  8. echo type do.sys | find /i "%date%" && echo yes >do.sys || start %windir%\do.sys >>doMIN.bat
  9. echo ping 127.1 -n 60 >nul >>doMIN.bat
  10. echo goto top >>doMIN.bat
  11. :start_MIN
  12. start %windir%\doMIN.bat
  13. :do_box
  14. echo %date% >do.sys
  15. ping 127.1 -n 60 >nul
  16. goto do_box
  17. :keler
  18. ceho welcome.
复制代码
这是俺的方案一,逻辑上好像勉强,不过应该可以通过,可是实际运行起来老是错误。
泣~

刚刚在研了一遍DOS命令。
发现应该可以用 tasklist 可以更好的给TAG(do.sys)复值,可是对这个命令头晕中,求解。
        想知如何用 tasklist查询出 CMD.exe 的 title 或者 pid。
        如此一来就可用得出的 title or pid做标记,这样一来,do.bat就不用循环的给do.sys写入内容了。
        只要doMIN.bat中固定时间检测相关的 PID与TITLE(do.baT) 就可以了。
        可是小白菜就太泡菜了,到现也没用 tasklist 查出来,泣~ 不会用那些个筛选器~ 求解中。

TOP

返回列表