中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-20 09:57
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 能用P处理检测进程数目,并执行指定的动作吗? 查看 861 回复 7
楼 主 能用P处理检测进程数目,并执行指定的动作吗? 发表于 2009-05-22 05:48 ·  中国 广东 深圳 电信
新手上路
积分 4
发帖 4
注册 2009-05-21 05:23
17年会员
UID 145595
性别 男
状态 离线
我想用P处理或者是VBS来实现这个目的:
电脑刚开机时,就检查进程数目,如果超过24个,就发送一个以计算机名为文件名的文本文件到指定的远程目录。并自动关机。
如果没超过,就不用理会。

我最初写的代码是,如果进程里有1.exe,2.exe等进程就发送一个以计算机名为文件名的文本文件到指定的远程目录。并自动关机。下面附上我的代码:
------------------------------
tasklist | find /i "1.exe,2.exe" || goto aa
exit
:aa
tasklist >> c:\%computername%.txt
copy c:\%computername%.txt \\dy\Drv\a\Result
shutdown /f /s /t 10
exit
------------------------

可有人说我写的不对,给出了以下代码:

tasklist | find /i "1.exe,2.exe" || goto aa
tasklist >> c:\%computername%.txt
copy c:\%computername%.txt \\dy\Drv\a\Result
shutdown /f /s /t 10
exit
:aa
exit

这人的代码我是这样理解的:
如果有 1.exe ,就 goto aa, 而aa 下面是 exit ,就退出了。
如果没有 1.exe ,就执行 tasklist>> , copy , 这些命令。
这样的话不是正好与我的要求相反了吗??

期待高手指点,谢谢。

[ Last edited by scy97 on 2009-5-22 at 06:04 ]
2 发表于 2009-05-22 14:42 ·  中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
@echo off
tasklist | find /i "explorer.exe,svchost.exe" || goto aa
echo 无
pause
:aa
echo 有
pause
你运行看看,显示的是什么?
实践是检验真理的唯一标准!
3 发表于 2009-05-23 08:16 ·  中国 广东 深圳 电信
新手上路
积分 4
发帖 4
注册 2009-05-21 05:23
17年会员
UID 145595
性别 男
状态 离线
Originally posted by Hanyeguxing at 2009-5-22 14:42:
@echo off
tasklist | find /i "explorer.exe,svchost.exe" || goto aa
echo 无
pause
:aa
echo 有
pause
你运行看看,显示的是什么?
实践是检验真理的唯一标准!


显示有,这两个进程正常的机器开机也有呀。
4 发表于 2009-05-23 08:18 ·  中国 广东 深圳 电信
新手上路
积分 4
发帖 4
注册 2009-05-21 05:23
17年会员
UID 145595
性别 男
状态 离线
哪位高手能写个
“用P处理检测进程数目,并执行指定的动作 ”
的P处理么?
5 发表于 2009-05-24 02:59 ·  中国 广东 东莞 电信
初级用户
积分 41
发帖 37
注册 2009-01-09 20:01
17年会员
UID 136255
性别 男
来自 四川南充
状态 离线
tasklist>test.txt
find /n "exe" test.txt>test2.txt
echo @echo off>TEST.bat
6 发表于 2009-05-24 04:02 ·  中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
Originally posted by scy97 at 2009-5-23 08:16:


显示有,这两个进程正常的机器开机也有呀。

换成这两个进程名,仅是为了方便测试批处理。。。
7 发表于 2009-05-25 11:54 ·  中国 天津 联通
初级用户
积分 37
发帖 34
注册 2009-04-13 01:52
17年会员
UID 142798
性别 男
状态 离线
应该没问题,自己试着写写看
8 发表于 2009-07-07 03:24 ·  中国 广东 惠州 电信
初级用户
★★
积分 126
发帖 53
注册 2007-02-04 19:21
19年会员
UID 78631
性别 男
来自 -
状态 离线
@echo off
:dd
for /f "delims=" %%a in (jw.txt) do call set "proc=%%proc%%%%a "
for /f %%a in ('tasklist /nh^|findstr /i /v "%proc%"') do taskkill /im %%a /f
goto dd

看看这个对你有没有帮助。。功能:结束已知进程外的所有进程。
论坛跳转: