中国DOS联盟论坛

中国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