中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 11:08
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 批处理只结束相同进程中的一个
可打印版本  1,203 / 12
第1楼 abczxc 发表于 2007-04-30 10:39
初级用户 发帖 53 积分 135
批处理只结束相同进程中的一个
@echo off
for /f "tokens=1,2" %%i in ('tasklist') do (
echo %%i | findstr /i "notepad.exe" 1>nul 2>nul && (
ntsd -c q -p %%j & set qq=%%i
)
)
if /i not "%qq%"=="notepad.exe" echo ~~~~~~没看到该程序~~~~~~~
echo.
pause

notepad.exe 只是一个例子
现在的情况是C:\WINDOWS\system32\svchost.exe是正常的程序,
但也有个 C:\WINDOWS\\svchost.exe坏程序
很显然上面的代码不行了,谁能给一个能只结束相同进程中一个的
批处理我,脚本也行

[ Last edited by abczxc on 2008-4-25 at 04:38 PM ]
第2楼 lxmxn 发表于 2007-04-30 10:52
版主 发帖 4,938 积分 11,386
直接根据路径杀掉不就可以了吗?
搜索 wmic 。
第3楼 bingxiao20 发表于 2007-04-30 10:56
初级用户 发帖 31 积分 68
根据PID进程号查杀应该好点吧 也简单点
第4楼 youxi01 发表于 2007-04-30 11:07
高级用户 发帖 247 积分 846 来自 湖南==》广东
Originally posted by bingxiao20 at 2007-4-30 10:56 AM:
根据PID进程号查杀应该好点吧 也简单点

应该做不到:如何去判断 坏程序的PID号?
还是斑竹的办法好点,用WMIC取得该程序的路径,如何不符合设定,就干掉它
第5楼 baomaboy 发表于 2007-04-30 11:11
银牌会员 发帖 554 积分 1,513
第6楼 bingxiao20 发表于 2007-04-30 11:53
初级用户 发帖 31 积分 68
Originally posted by baomaboy at 2007-4-29 10:11 PM:
第7楼 youxi01 发表于 2007-04-30 12:52
高级用户 发帖 247 积分 846 来自 湖南==》广东
Originally posted by baomaboy at 2007-4-30 11:11 AM:
第8楼 baomaboy 发表于 2007-04-30 13:24
银牌会员 发帖 554 积分 1,513
Originally posted by youxi01 at 2007-4-30 12:52:


发现兄写了好多的vbs代码,都写的不错啊!但是结构看起来不是很明确,我不知道你是不是专门用了软件来编写 vbs 的,如果是这样那就另当别论。

想我开始学的时候,都是用NOTEPAD直接来的,现在想来头都大。


最初我也用N的,后来一直只用是EmEditor了。

呵呵 没用过专门的软件呢还,如果用了也许结构不至于那么差了,写一个东西我总是是想到哪写到哪,所以有时为了个忽然想到的功能块或错误处理而随意改变程序的结构。另外我在 管理”新建“菜单中的文件类型→VBS版 9楼中 说:

①由于新建VBS模版的原因,代码中会有多于的代码 (无用代码),更由于我懒而没删除,大家凑合看吧。
②基础差,没好的编码习惯,想到那写到哪,所以可能有捷径的代码我用了很曲折的方法,还是由于懒没有改写。
我的目的就是,可以学习到方法和技巧,并可以使用,至于美化格式,精简代码,等我有时间和精力时也许会那么做 。所以 希望大家不要扔鸡蛋啊 ,最初加密就是怕大家砸我 ^_^。
第9楼 abczxc 发表于 2007-04-30 21:25
初级用户 发帖 53 积分 135
Dim WshSHell
Set WshSHell = WScript.CreateObject("WScript.Shell")
for each ps in getobject("winmgmts:\\.\root\cimv2:win32_process").instances_
if ps.executablepath="C:\WINDOWS\system32\syx\syy\syz\sss\s.exe" then
WshSHell.Run ("ntsd -c q -p "&ps.handle),vbHide
end if
next
Set WshSHell = Nothing
WScript.Quit(0)
楼上的vbs真不错,但是我电脑上面有些程序用这个结束不了啊
如 C:\WINDOWS\system32\syx\syy\syz\sss\s.exe 这个程序就结束不了,这是怎么回事?
第10楼 abczxc 发表于 2007-04-30 21:37
初级用户 发帖 53 积分 135
还是搞清楚了,baomaboy写的这个脚本真好。谢谢啊
原来是路径搞错了,用mt -pslist看了一下好了
第11楼 abczxc 发表于 2007-05-01 18:10
初级用户 发帖 53 积分 135
有不有同样功能的bat呀

wmic是怎么,谁举个例子吧
第12楼 baomaboy 发表于 2007-05-02 21:14
银牌会员 发帖 554 积分 1,513
To abczxc
帖子的问题直接回原贴就可以了,UCase函数与组合次数无关。
第13楼 baomaboy 发表于 2007-05-02 21:21
银牌会员 发帖 554 积分 1,513
这个例子是带删除文件的 搜索路径查杀进程
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023