关于批处理查找进程问题

我想先用tasklist命令将所有进程导入到1.txt中,在用个循环将所有的进程导入到2.txt,然后用for命令读取2.txt中的每一个进程,并在1.txt中查找,如果... 我想先用tasklist命令将所有进程导入到1.txt中,在用个循环将所有的进程导入到2.txt,然后用for命令读取2.txt中的每一个进程,并在1.txt中查找,如果没有找到,查找失败,就写入vbs脚本,显示有新的进程运行,可我总是在查找上面不知道怎么做,希望大家想个办法,我写了代码,大家看一下,还有,进程每次运行PID都不一样,所以查找时,只查程序名,防止同程序显示报错!
@echo off
if exist 1.txt goto start
tasklist >1.txt
:start
tasklist >2.txt
for /f "delims= " %%i in (2.txt) do (
find "%%i" "1.txt"
rem %%i这个总是显示是文件,我加个""号,测试能找出来。
rem 不加就显示找不到文件。
echo %errorlevel% rem 为什么这个总是显示0,这就是无法判断的原因了。
if %errorlevel% == 1 set m=%%i & goto end

:end
Echo msgbox "发现新进程" & %m% >123.vbs
call 123.vbs
del 123.vbs
goto start
本程序哪里有失误的地方,望朋友多指点,谢谢了,我最讨厌天天有不明的程序后台运行,它们真的好烦人,希望纠正程序时测试一下,谢谢了!!!
展开
 我来答
麦兜Terran
2010-12-22 · TA获得超过2571个赞
知道小有建树答主
回答量:1786
采纳率:0%
帮助的人:1163万
展开全部
vbs 代码
msgbox "正在后台检测中...",32+32,"提示"
wscript.creteobject("wscript.shell").run "1.bat",0
-------------这是隐藏到后台检测

@echo off&setlocal enabledelayedexpansion
cd.>1.txt
for /f "skip=3 tokens=1 delims= " %%1 in ('tasklist')do echo %%1>>1.txt
:s
set a=0
set b=0
for /f "skip=3 tokens=1 delims= " %%1 in ('tasklist')do set/a b+=1
for /f "delims=" %%1 in ('type 1.txt')do set/a a+=1
if /i "!a!" neq "!b!" (set c=有新的进程)else goto s
echo msgbox "!c!",32+32,"提示">tmp.vbs&tmp.vbs&del tmp.vbs
exit
------------最好保存为1.bat 然后启动 上面的vbs程序
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式