无忧启动论坛

标题: 谁能帮我做一个批处理,具体内容进来看 [打印本页]

作者: 77730191    时间: 2010-3-20 22:35
标题: 谁能帮我做一个批处理,具体内容进来看
本人才疏学浅,希望各位大侠帮忙。
用一个批处理命令监视某个程序是否运行,如运行了则运行另外一个程序
还有一个是用批处理命令监视一个程序是否停止,如果停止了则运行另外一个程序
作者: dos时代菜鸟    时间: 2010-3-21 08:01
用 tasklist / for /find 配合 goto 实现。
作者: 77730191    时间: 2010-3-21 16:31
你还是售我点鱼吧,我真不懂。
作者: dos时代菜鸟    时间: 2010-3-22 11:34
声明在前:这两个脚本有恶意循环 和 病毒 特点,如果用于不正当途径,后果自负。
这里只用来研究。


监测 系统是否运行 notepad 如果运行了,就启动explorer.exe然后退出脚本。
cmd 脚本内容:
-------------------------------
@echo off
color 0a
title 进程检测
set task1=notepad
set task2="explorer.exe"
set t=10
set n=0
:loop
set /a n=%n%+1
echo 正在检测%task1%是否运行,如果运行就启动%task2%,每%t%秒钟检测一次.%n%
tasklist|find /i "%task1%"
if not errorlevel 1 goto end
ping -n %t% 127.0.0.1 >nul 2>nul
echo %task1% 没有运行
goto loop
:end
echo %task1% 已经运行,启动 %task2%
start "" %task2%
---------------------------------------

监测notepad 是否不在进程列表中,如果不在就启动explorer,然后退出脚本
cmd 脚本如下:
----------------------------------
@echo off
color 0a
title 进程检测
set task1=notepad
set task2="explorer.exe"
set t=10
set n=0
:loop
set /a n=%n%+1
echo echo 正在检测%task1%是否运行,如果没运行就启动%task2%,每%t%秒钟检测一次.%n%
tasklist|find /i "%task1%"
if errorlevel 1 goto end
ping -n %t% 127.0.0.1 >nul 2>nul
echo %task1% 仍然运行
goto loop
:end
echo %task1% 已经停止,启动 %task2%
start "" %task2%
---------------------------------------------

[ 本帖最后由 dos时代菜鸟 于 2010-3-22 11:37 编辑 ]
作者: dos时代菜鸟    时间: 2010-3-22 12:29
循环监控 不允许 系统运行 ie . 当然也可以用于监控病毒。

@echo off
set task1=IEXPLORE.EXE
set t=3
title no_%task1%
color 0a
mode con cols=80 lines=5
:loop
cls
echo 3秒循环监测并关闭IE!
tasklist|find /i "%task1%"
if not errorlevel 1 TASKKILL /F /IM "%task1%"
ping -n %t% 127.0.0.1 >nul 2>nul
goto loop
:end
作者: dos时代菜鸟    时间: 2010-3-22 12:55
循环监控多个 进程,如果发现运行立即 终止 之。
以下 两个文件 可以实现 禁止系统运行 联众 qq 和IE

cmd 脚本如下:
-------------------------------
@echo off
mode con cols=80 lines=15
color fc
title 循环监控并终止指定进程 数据库:task2.txt
set t=3
:loop
for /f "delims=" %%c in (task2.txt) do (
tasklist| find /i "%%c" >nul
if not errorlevel 1 (
   echo 发现进程 "%%c" 尝试终止.... [%date% %time%]
   taskkill /f /im "%%c" )
)
ping -n %t% 127.0.0.1 >nul 2>nul
goto loop
:end

------------------

需终止的进程数据库 task2.txt 内容举例
------------
qq.exe
IEXPLORE.EXE
glworld.exe

-------------------------

[ 本帖最后由 dos时代菜鸟 于 2010-3-22 12:56 编辑 ]
作者: icev44v44    时间: 2010-3-22 17:06
平时比较懒 直接

:run
taskkill  /f /im qq.exe
goto run

这样似乎太没效率了........
for 不怎么会用  6楼的批处理就收下了
作者: 0cat0    时间: 2010-3-22 18:40
进来学习一下,多谢提供。。。。。。。
作者: x9tian    时间: 2010-3-23 00:45
我一般,监控病毒,  taskkill 命令, 喜欢带/T 参数跑, 这样觉得心里安稳点
作者: x9tian    时间: 2010-3-23 18:13
set n=0
:loop
set /a n=%n%+1

这个可以写成,  set/a n+=1  就行了吧

   必竟批处理的变量,是只有在%0 运行时才有效的,
作者: 77730191    时间: 2010-3-25 21:43
高手啊,我学习了。没白来无忧,太长知识了!
作者: 77730191    时间: 2010-3-25 22:32
标题: 回复 #4 dos时代菜鸟 的帖子
上面这段我没有测试,但是下面这段我测试的时候好象不太正常呀,出现
应用程序发生异常 unknown software exception (0xc0000094),位置为 0x7ff999cf
要终止程序请单击确定
要调试程序请单击取消
作者: dos时代菜鸟    时间: 2010-3-26 21:29
原帖由 77730191 于 2010-3-25 22:32 发表
上面这段我没有测试,但是下面这段我测试的时候好象不太正常呀,出现
应用程序发生异常 unknown software exception (0xc0000094),位置为 0x7ff999cf
要终止程序请单击确定
要调试程序请单击取消


不知道你是怎么测试的。什么操作系统。脚本中用到 CMD 外部指令和循环,如果有杀毒软件,可能报错!!!




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3