中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理检测进程是否存在, 然后做出选择问题.
作者:
标题: 批处理检测进程是否存在, 然后做出选择问题. 上一主题 | 下一主题
sweetdreamlan
中级用户





积分 244
发帖 92
注册 2006-5-13
状态 离线
『楼 主』:  批处理检测进程是否存在, 然后做出选择问题.

想做一个  批处理检测系统的一个进程是否存在的脚本, 如果不存在,就自动关机.  应该会用到IF语句吧, 希望高手指点.

2006-8-28 13:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kcdsw
中级用户





积分 404
发帖 179
注册 2006-3-30
状态 离线
『第 2 楼』:  

tasklist

然后剩下的自己想

2006-8-28 13:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sweetdreamlan
中级用户





积分 244
发帖 92
注册 2006-5-13
状态 离线
『第 3 楼』:  

这个命令用起来有点难度  能不能做个示范,谢谢

2006-8-28 15:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sweetdreamlan
中级用户





积分 244
发帖 92
注册 2006-5-13
状态 离线
『第 4 楼』:  

想了好久  就是写不出来

2006-8-28 15:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 5 楼』:  

说明写少了




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-8-28 19:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sweetdreamlan
中级用户





积分 244
发帖 92
注册 2006-5-13
状态 离线
『第 6 楼』:  

哪个高手帮帮忙,  开个头
我用IF 不知道怎么开头

2006-8-28 19:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sweetdreamlan
中级用户





积分 244
发帖 92
注册 2006-5-13
状态 离线
『第 7 楼』:  

主要是   IF,  怎么和  tasklist 连起来用

2006-8-28 20:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 8 楼』:  

tasklist >tasklist.txt
rem 进程名如 smss.exe
find /i tasklist.txt "进程名"     
if errorlevel 1 ((del /q tasklist.txt)&(goto end))
if errorlevel 0 ((del /q tasklist.txt)&(echo 有你想要的进程)&pause&exit)
:end
shutdown -s -t 1


不过这样只有这个bat运行一次检测一次,没有实时监控

[ Last edited by he200377 on 2006-8-29 at 12:58 ]

2006-8-29 12:54
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
sweetdreamlan
中级用户





积分 244
发帖 92
注册 2006-5-13
状态 离线
『第 9 楼』:  

恩, 非常感谢  我在想下看怎么实施坚控

2006-8-29 16:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sweetdreamlan
中级用户





积分 244
发帖 92
注册 2006-5-13
状态 离线
『第 10 楼』:  

OK 了, 用了FOR  语句

2006-8-29 16:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sweetdreamlan
中级用户





积分 244
发帖 92
注册 2006-5-13
状态 离线
『第 11 楼』:  

用Explorer.exe  进程测试
tasklist >tasklist.txt
find /i tasklist.txt "Explorer.exe"     
if errorlevel 1 ((del /q tasklist.txt)&(goto end))
if errorlevel 0 ((del /q tasklist.txt)&(echo Explorer.exe)&pause&exit)
:end
shutdown -s -t 50

上面的脚本, 只是检测一下  不会即实监测.

下面是改过的脚本
用Goto 语句做  监测

:start
tasklist >tasklist.txt
find /i tasklist.txt "Explorer.exe"     
if errorlevel 1 ((del /q tasklist.txt)&(goto end))
if errorlevel 0 ((goto start))
:end
shutdown -s -t 50

这样一来  如果Explorer.exe  进程,存在, 就是死循环.
直到  Explorer.exe  进程结束, 就执行  关机命令.

但这样有个缺点   CPU 100%

哪位能解决  ...

2006-8-29 19:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 12 楼』:  

在结合一个 at.bat   10分钟执行一次,可是还不算实监控

如果楼主想一个进程不被结束,可以考虑用工具给进程加密,结束要密码

2006-8-29 20:13
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
sweetdreamlan
中级用户





积分 244
发帖 92
注册 2006-5-13
状态 离线
『第 13 楼』:  

1.bat
_____
at 00:01 start D:\a.bat
at 00:02 start D:\a.bat
at 00:03 start D:\a.bat
at 00:04 start D:\a.bat
at 00:05 start D:\a.bat
.......
at 24:00 start D:\a.bat
__________________

a.bat
____
:start
tasklist >tasklist.txt
find /i tasklist.txt "Explorer.exe"     
if errorlevel 1 ((del /q tasklist.txt)&(goto end))
exit
:end
shutdown -s -t 50


把 a.bat 放D盘

然后运行 1.bat
  
这样就达到了, 1分钟检测下进程进否存在的条件了

不会让 CPU 到100%

哪位大侠有更高的,请写出来.

2006-8-30 20:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 14 楼』:  

  以下代码每隔10分钟检测一次进程列表,如果不存在explorer.exe,则自动关机
:loop
tasklist|findstr /i "explorer.exe" ||shutdown -s -t 50
ping 127.1 -n 600 >nul 2>nul
goto loop
  楼主这个问题其实属于比较简单的循环问题,以前都有过讨论的,请多用论坛的搜索功能。

  相关讨论请看:
  如何实现30秒间隔循环执行一个批处理文件?? http://www.cn-dos.net/forum/viewthread.php?tid=22267&fpage=1&highlight=%E5%BE%AA%E7%8E%AF

[ Last edited by namejm on 2006-8-30 at 21:20 ]



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-8-30 21:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
luowei14
初级用户




积分 193
发帖 98
注册 2007-1-17
状态 离线
『第 15 楼』:  

好帖就得顶。。。。楼主的帖让我领悟了很多东西。。下面这个作品就是拜楼主所赐

   每隔20秒自动检测进程列表,自动关闭notepad.exe,也就是记事本程序,如有需要,可以改成某病毒的名称,可以起到监控的作用。。。

@echo off
:1
tasklist | find "notepad.exe" >>c:\notepad.luowei
if exist c:\notepad.luowei taskkill /f /im notepad.exe  
ping 127.1 -n 20 >nul 2>nul
goto 1



这家伙很聪明 什么都没留下
2007-6-18 14:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: