![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 11:12 |
共 48,039 主题排行 / 350,124 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 结束除系统进程以外的进程的问题 |
| 可打印版本 878 / 6 |
| 第1楼 luckboy45 | 发表于 2007-11-10 21:25 |
| 中级用户 发帖 212 积分 487 | |
|
结束除系统进程以外的进程的问题 我在论坛看到这段代码,说是可以杀掉除下列Process.ini配置文件里面的进程的P处理,我实际运行了下,根本无法实现,不知道是这么回事情,请教各位下,请指出哪错误了,并帮忙写出代码.谢谢!~
@echo off&Setlocal EnableDelayedExpansion for /f "tokens=1 delims=," %%a in ('tasklist /nh /FO CSV') do ( for /f "delims=" %%b in (Process.ini) do ( set /a flag+=1 if /i not %%a=="%%b" set /a num+=1 ) if !flag! equ !num! taskkill /f /im %%a set /a flag=num=0 ) echo the end... Process.ini进程如下 alg.exe csrss.exe explorer.exe lsass.exe smss.exe ctfmon.exe services.exe svchost.exe winlogon.exe System System Idle Process Wscript.exe cmd.exe 还有,我是用P处理生成如上程序,保存为TASKKILL.BAT 能正常输出,但却被过滤掉了一个%,应该不影响使用吧?? 我是这么写的... @echo off echo @echo off^&Setlocal EnableDelayedExpansion >>c:\taskkill.bat echo for /f "tokens=1 delims=," %%a in ('tasklist /nh /FO CSV') do ( >>c:\taskkill.bat echo for /f "delims=" %%b in (123.ini) do ( >>c:\taskkill.bat echo set /a flag+=1 >>c:\taskkill.bat echo if /i not %%a=="%%b" set /a num+=1 >>c:\taskkill.bat echo ) >>c:\taskkill.bat echo if !flag! equ !num! taskkill /f /im %%a >>c:\taskkill.bat echo set /a flag=num=0 >>c:\taskkill.bat echo ) >>c:\taskkill.bat echo echo the end... >>c:\taskkill.bat 输出效果为: @echo off&Setlocal EnableDelayedExpansion for /f "tokens=1 delims=," %a in ('tasklist /nh /FO CSV') do ( for /f "delims=" %b in (123.ini) do ( set /a flag+=1 if /i not %a=="%b" set /a num+=1 ) if !flag! equ !num! taskkill /f /im %a set /a flag=num=0 ) echo the end... 请各位帮忙完善下代码,并指出是什么原因导致无法正常运行的.... [ Last edited by luckboy45 on 2007-11-11 at 06:33 PM ] |
|
| 第2楼 terse | 发表于 2007-11-10 23:21 |
| 银牌会员 发帖 946 积分 2,404 | |
|
多加2个%%输出
|
|
| 第3楼 luckboy45 | 发表于 2007-11-11 08:37 |
| 中级用户 发帖 212 积分 487 | |
|
虽然能实现输出了,但问题是,这代码运行后就提示进程输出的管道不存在???是代码本身就是错误的么?请各位帮帮忙啊!~
刚才又运行出现---已经达到最大的SETLOCAL递归层.....代码似乎是死循环...有谁看的懂解释下啊!~在线等,希望各位帮帮我!~ [ Last edited by luckboy45 on 2007-11-11 at 08:49 AM ] |
|
| 第4楼 luckboy45 | 发表于 2007-11-11 11:02 |
| 中级用户 发帖 212 积分 487 | |
|
没人乐意帮忙么?汗...我顶下...
|
|
| 第5楼 abcd | 发表于 2007-11-11 11:19 |
| 银牌会员 发帖 739 积分 1,436 | |
| 第6楼 luckboy45 | 发表于 2007-11-11 16:45 |
| 中级用户 发帖 212 积分 487 | |
|
感谢5楼的朋友热情回复
我要实现的是,结束掉除了alg.exe csrss.exe explorer.exe lsass.exe smss.exe ctfmon.exe services.exe svchost.exe winlogon.exe System System Idle Process Wscript.exe cmd.exe 以外是所有进程啊,你这个代码%%~A我不懂何意思,只知道找不到%%~A就执行TASKLIST命令.....请帮忙解释下!~谢谢!~ |
|
| 第7楼 terse | 发表于 2007-11-11 22:45 |
| 银牌会员 发帖 946 积分 2,404 | |
|
这样呢?
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |