天刀 杏花:问几个批处理文件的问题

来源:百度文库 编辑:高考问答 时间:2024/05/03 17:12:31
在批处理文件中怎样判断一个进程是否存在啊,比如QQ.EXE
(在WINXP的CMD里面)
还有批处理的"%"和">"到底是什么意思
麻烦说通俗一点,最好举个例子
我是一小小菜鸟
是不是可以这样先用tasklist >list.txt
再读取LIST.txt的内容看是否有QQ.EXE?
我是这样想的,但不知道怎么实现,还烦请大侠写出代码,谢谢

tasklist /fi "imagename eq qq.exe"
具体你运行tasklist /? 看一下它的帮助

%是通配符;>是输出符,输出到后面的东西

、%

这个百分号严格来说是算不上命令的,它只是批处理中的参数而已(多个%一起使用的情况除外,以后还将详细介绍),但千万别以为它只是参数就小看了它(看看例五中有多少地方用到它?),少了它批处理的功能就减少了51%了。看看例七:

net use \\%1\ipc$ %3 /u:"%2"
copy 11.BAT \\%1\admin$\system32 /y
copy 13.BAT \\%1\admin$\system32 /y
copy ipc2.BAT \\%1\admin$\system32 /y
copy NWZI.EXE \\%1\admin$\system32 /y
attrib \\%1\admin$\system32\10.bat -r -h -s

以上代码是Bat.Worm.Muma病毒中的一部分,%1代表的IP,2%代表的username,3%代表password。执行形式为:脚本文件名 参数一 参数二 ……。假设这个脚本被保存为a.bat,则执行形式如下:a IP username password。这里IP、username、password是三个参数,缺一不可(因为程序不能正确运行,并不是因为少了参数语法就不对)这样在脚本执行过程中,脚本就自动用用你的三个参数依次(记住,是依次!也是一一对应的关系。)代换1%、2%和3%,这样就达到了灵活运用的目的(试想,如果在脚本中直接把IP、username和password都定义死,那么脚本的作用也就被固定了,但如果使用%的话,不同的参数可以达到不同的目的,是不是更灵活?)。

关于这个参数的使用,在后续章节中还将介绍。一定要非常熟练才行,这需要很多练习过程,需要下点狠工夫!

这一章就写到这里了。可能有朋友问了:怎么没介绍if命令?呵呵,不是我忘了,而是它不容易说清楚,下一章再讲了!这一章讲的这点东西,如果你是初学者,恐怕也够消化的了。记住一句话:DOS是批处理的BODY,任何一个DOS命令都可以被用在批处理脚本中去完成特定的功能。到这里,你是否已经想到了用自己肚子里的东西去写点带有自动化色彩的东东呢?很简单,就是一个DOS命令的集合而已,相信自称为天才的你已经会把计算机等级考试上机试题中的DOS部分用批处理来自动化完成了。

烦!就好象一个半老女人到了更年期,什么事都想唠叨几句,什么事都感到不舒服,看谁谁不爽。明知山有虎,偏向虎山行,最后留下一身伤痕无功而返时,才发现自己竟然如此脆弱,如此渺小,如此不堪一击。徘徊在崩溃的边缘,突然回想起了自己最后一次扁人的那一刻,还真有点怀念(其实我很不喜欢扁人,更不喜欢被人扁)。我需要发泄,我用手指拼命的敲打着键盘,在一阵接一阵有节奏的声音中,屏幕上出现了上面的这些文字。可难道这就是发泄的另一种方式吗?中国人还是厉害,早在几千年前孔老夫子就说过“唯女子与小人,难养也”,真**有先见之明,佩服!虽然是在发泄,不过大家请放心,以我的脾气,既然决定写这篇教程,就一定会尽力去写好,写完美,绝对不给自己留下遗憾,要不这教程就不是我写的!

>
就是生成一记事本中要用到的,例如:ping 192.168.1.123 -t >a.txt这里如果少了>它就不会生成a
.txt这个记事本。

小样想稻QQ号吧
不过我还是告诉你一个方法
只是针对你的问题哦
用tasklist >list.txt
这个是不行的
默认是没有安装用tasklist这个软件的
但是我们还是要解决问题
于是我们可以使用vbs脚本
显示所有进程可以使用如下脚本

wscript.echo "进程ID 进程名称"
for each ps in getobject("winmgmts:\\.\root\cimv2:win32_process").instances_
wscript.echo ps.handle & vbtab & ps.name
next

从记事本中保存为.vbs文件就好了
它可以双击运行

但是这样会一个一个弹出来
想知道是否有QQ存在还得瞪大眼睛找
这样不好
介绍一个DOS下的命令
cscript file.vbs
它可以以命令行方式运行vbs文件
我们检查它的输出是否含有QQ字样就知道是否有QQ在运行

代码如下:
@echo off
echo wscript.echo "PID ProcessName" >list.vbs
echo for each ps in getobject("winmgmts:\\.\root\cimv2:win32_process").instances_ >>list.vbs
echo wscript.echo ps.handle ^& vbtab ^& ps.name >>list.vbs
echo next >>list.vbs
cscript list.vbs | find "QQ" >nul && goto QQ
echo 没有发现QQ
goto end
:QQ
echo 发现QQ
:end
if exist list.vbs del list.vbs
pause

保存为.bat文件运行就知道结果了
(我是用XP的,不知道 2000上是否有这个"cscript"命令)
欢迎关注百度批处理吧