2022年bat批处理教程 .pdf
bat 批处理教程OK,never claver and get to business(闲话少说言归正传)。批处理,也称为批处理脚本,英文译为BATCH ,批处理文件后缀BAT 就取的前三个字母。 它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令, 每个命令里可以含多条子命令,从第一行开始执行, 直到最后一行结束,它运行的平台是DOS。批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。我不想让自己写的教程枯燥无味,因为牵缠到代码(批处理的内容算是代码吧?)的问题本来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理(晕,怎么又是爱?到底批处理和爱有什么关系?答案:没有!)。再说句 “ 闲话 ” :要学好批处理, DOS 基础一定要牢!当然脑子灵活也是很重要的一方面。例一、先给出一个最easy 的批处理脚本让大家和它混个脸熟,将下面的几行命令保存为name.bat然后执行(以后文中只给出代码,保存和执行方式类似):ping a.txt ping a.txt ping a.txt ping a.txt ping a.txt ping a.txt ping a.txt ping a.txt exit 是不是都能看的懂?是不是很easy?但它的作用却是很实用的,执行这个批处理后,可以在你的当前盘建立一个名为a.txt 的文件,它里面记录的信息可以帮助你迅速找到速度最快的QQ 服务器,从而远离 “ 从服务器中转 ” 那一痛苦的过程。这里的意思,是把前面命令得到的东西放到后面所给的地方, 的作用,和 的相同,区别是把结果追加到前一行得出的结果的后面,具体的说是下一行,而前面一行命令得出的结果将保留,这样可以使这个a.txt 文件越来越大(想到如何搞破坏了?)。By the way ,这个批处理还可以和其他命令结合,搞成完全自动化判断服务器速度的东东,执行后直接显示速度最快的服务器IP,是不是很爽?后面还将详细介绍。例二、再给出一个已经过时的例子(a.bat ):echo off if exist C:Progra1TencentAD*.gif del C:Progra1TencentAD*.gifa.bat 为什么说这是个过时的例子呢?很简单,因为现在已经几乎没有人用带广告的QQ 了(KAO,我的QQ 还显示好友三围呢!),所以它几乎用不上了。但曾经它的作用是不可小窥的:删除QQ 的广告,让对话框干干净净。这里用的地址是QQ 的默认安装地址,默认批处理文件名为a.bat,你当然可以根据情况自行修改。在这个脚本中使用了if 命令,使得它可以达到适时判断和删除广告图片的效果,你只需要不关闭命令执行后的DOS 窗口,不按 CTRL+C 强行终止命令, 它就一直监视是否有广告图片( QQ 也再不断查看自己的广告是否被删除)。当然这个脚本占用你一点点内存,呵呵。例三,使用批处理脚本查是否中冰河。脚本内容如下:echo off netstat -a -n a.txt type a.txt | find 7626 & echo Congratulations! You have infected GLACIER! del a.txt pause & exit 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 22 页 - - - - - - - - - 这里利用了netstat 命令,检查所有的网络端口状态,只需要你清楚常见木马所使用的端口,就能很easy 的判断出来是否被人种了冰河。然这不是确定的,因为冰河默认的端口7626 ,完全可以被人修改。这里介绍的只是方法和思路。这里介绍的是方法和思路稍做改动,就变成可以检查其他木马的脚本了,再改动一下, 加进去参数和端口及信息列表文件后,就变成自动检测所有木马的脚本了。呵呵,是不是很过瘾?脚本中还利用了组合命令&和管道命令 |,后面将详细介绍。例四,借批处理自动清除系统垃圾,脚本如下:echo off if exist c:windowstemp*.* del c:windowstemp*.* if exist c:windowsTempor1*.* del c:windowsTempor1*.* if exist c:windowsHistory*.* del c:windowsHistory*.* if exist c:windowsrecent*.* del c:windowsrecent*.* 将以上脚本内容保存到autoexec.bat 里,每次开机时就把系统垃圾给自动删除了。这里需要注意两点:一、 DOS 不支持长文件名,所以就出现了Tempor1 这个东东;二、可根据自己的实际情况进行改动,使其符合自己的要求。怎么样, 看到这里, 你对批处理脚本是不是已经有点兴趣了?是不是发现自己已经慢慢爱上了这个东东?别高兴的太早,爱不是一件简单的事,它也许能带给你快乐和幸福,当然也能让你痛苦的想去跳楼。如果你知道很难还敢继续的话,I 服了 YOU!继续努力吧,也许到最后你不一定得到真爱(真的有这可能,爱过的人都知道),但你可以体会到整个爱的过程,就是如此。酸、苦和辣,有没有甜天知道。为什么会把批处理和爱情扯上关系?不是我无聊,也不是因为这样写有趣多少,原因有二:其一,批处理和爱情有很多相同的地方,有些地方我用“ 专业 ” 的行话解释不清(我不怀疑自己的表达能力,而是事情本身就不好说清楚),说了=没说,但用地球人都知道的爱情一比喻(爱情是什么?我*怎么知道!),没准你心里一下就亮堂了,事半功倍,何乐而不为?其二,我这段时间状态不是很好,感冒发烧头疼鼻塞,但主要还是感情上精神摧残,搞的人烦透了,借写教程之际感慨几句,大家就全当买狗皮膏药了,完全可以省略不看(也许还真有点效果-不至于让你看着看着就睡着了,把头磕了来找我报销医药费)。说不定下次的教程中大家还会看到杨过、张无忌等金老前辈笔下的英雄们。看过第一章的朋友,一定对批处理有了初步的印象,知道它到底是用来干什么的了。但你知道运用批处理的精髓在哪里吗?其实很简单:思路要灵活!没有做不到的,只有想不到的。 这和爱情就有点不同了,因为爱情的世界是两个人的世界,一厢情愿不叫爱情(补充:那叫单恋。废话!)而批处理却是一个人的天堂,你可以为所欲为,没有达不到的境界!批处理看起来杂乱无章,但它的逻辑性之强,绝对不比其他程序语言(如汇编)低,如果你写的脚本是一堆乱麻,虽然每一行命令都正确,但从头执行到尾后, 不一定得到你想要的结果,也许是一屏幕的 Bad command or fail name。这又和爱情有了共同点: 按步骤来经营, 缺少或增多的步骤都可能导致不想看见的结果。陷入爱河的朋友,相信没有不肯定这句话的。我的爱情批处理,输出的结果不是Bad command or fail name,屏幕是这么显示的:,你的爱情 ? 不是内部或外部命令,也不是可运行的程序或批处理文件。然后就是光标不停闪动,等待这下一次错误的输入。从这一章开始,将由浅入深的介绍批处理中常用的命令,很多常见DOS 命令在批处理脚本中有这广泛的应用,它们是批处理脚本的BODY 部分,但批处理比DOS 更灵活多样,更具备自动化。要学好批处理, DOS 一定要有比较扎实的基础。这里只讲述一些比较少用(相对来说)的DOS 命令,常用命令如 COPY 、DIR 等就不做介绍了 (这些看似简单的命令实际复杂的很,我怕自己都说不清楚! )。例五,先看一个实例。这是一个很有意思的脚本,一个小巧实用的好东东,把批处理“ 自动化 ” 的特点体现的淋漓尽致。 先介绍一下这个脚本的来历:大家都知道汇编程序(MASM )的上机过程,先要对源代码进行汇编、 连接,然后再执行,而这中间有很多环节需要输入很多东西,麻烦的很(只有经历名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 22 页 - - - - - - - - - 过的朋友才懂得) 。如何使这个过程变的简单呢?在我们搞汇编课程设计时,我“ 被逼” 写了这个脚本,用起来很爽,呵呵。看看脚本内容:echo off :close echo cls :clean screen echo This programme is to make the MASM programme automate :display info echo Edit by CODERED :display info echo Mailto me : qqkiller* :display info if %1= goto usage :if input without paramater goto usage if %1=/? goto usage :if paramater is /? goto usage if %1=help goto usage :if paramater is help goto usage pause :pause to see usage masm %1.asm :assemble the .asm code if errorlevel 1 pause & edit %1.asm :if error pause to see error msg and edit the code link %1.obj & %1 :else link the .obj file and execute the .exe file :usage :set usage echo Usage: This BAT file name asm file name echo Default BAT file name is START.BAT :display usage 先不要被这一堆的东西给吓怕了,静下心来仔细的看(回想一下第一章中第一段是怎么写的!)。已经给出了每一行命令的解释,两个冒号后面的内容为前一行内容解释的E 文(害怕 E 文的朋友也不用担心,都很easy,一看就懂了,实在不懂了不会查词典啊,这么懒?),在脚本执行时不显示,也不起任何作用。倒数第5 行行首有一个冒号, 可不是笔误哦!具体作用后面会详细讲到。此脚本中masm 和 link 是汇编程序和连接程序,必须和edit 程序以及你要编辑的源代码(当然还有这个脚本,废话!)一起在当前目录中。使用这个批处理脚本,可以最大可能的减少手工输入,整个过程中只需要按几下回车键, 即可实现从汇编源代码到可执行exe 文件的自动化转换, 并具备智能判断功能:如果汇编时源代码出现错误(汇编不成功),则自动暂停显示错误信息,并在按任意键后自动进入编辑源代码界面;如果源代码汇编成功,则进行连接, 并在连接后自动执行生成的exe 文件。 另外,由于批处理命令的简单性和灵活性,这个脚本还具备良好的可改进性,简单进行修改就可以符合不同朋友的上机习惯。正在学汇编的朋友,一定别忘了实习一下!在这个脚本中出现了如下几个命令:、echo、:、pause 、:和 goto、%以及 if。而这一章就将讲述这几个命令。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - - - - - 1、 这个符号大家都不陌生,email 的必备符号,它怎么会跑到批处理中呢?呵呵,不是它的错,批处理本来就离不开它,要不就不完美了。它的作用是让执行窗口中不显示它后面这一行的命令本身(多么绕口的一句话!)。呵呵,通俗一点说,行首有了它的话,这一行的命令就不显示了。在例五中,首行的 echo off 中,的作用就是让脚本在执行时不显示后面的echo off 部分。这下懂了吧?还是不太懂?没关系,看完echo 命令简介,自然就懂了。2、echo 中文为 “ 反馈 ” 、“ 回显 ” 的意思。它其实是一个开关命令,就是说它只有两种状态:打开和关闭。于是就有了 echo on 和 echo off 两个命令了。直接执行echo 命令将显示当前echo 命令状态( off 或 on)执行 echo off 将关闭回显,它后面的所有命令都不显示命令本身,只显示执行后的结果,除非执行echo on 命令。在例五中, 首行的 命令和 echo off 命令联合起来, 达到了两个目的: 不显示 echo off命令本身,不显示以后各行中的命令本身。的确是有点乱,但你要是练习一下的话,3 分钟包会,不会的退钱!echo 命令的另一种用法一:可以用它来显示信息!如例五中倒数第二行,Default BAT file name is START.BAT 将在脚本执行后的窗口中显示,而echo 命令本身不显示(为什么?)。echo 命令的另一种用法二:可以直接编辑文本文件。例六:echo nbtstat -A 192.168.0.1 a.bat echo nbtstat -A 192.168.0.2 a.bat echo nbtstat -A 192.168.0.3 a.bat 以上脚本内容的编辑方法是,直接是命令行输入, 每行一回车。 最后就会在当前目录下生成一个a.bat的文件,直接执行就会得到结果。3、: 这个命令的作用很简单,它是注释命令,在批处理脚本中和rem 命令等效。它后面的内容在执行时不显示,也不起任何作用,因为它只是注释,只是增加了脚本的可读性,和C 语言中的 /* */类似。地球人都能看懂,就不多说了。4、pause 中文为 “ 暂停 ” 的意思(看看你的workman 上),我一直认为它是批处理中最简单的一个命令,单纯、实用。它的作用,是让当前程序进程暂停一下,并显示一行信息:请按任意键继续. . .。在例五中这个命令运用了两次, 第一次的作用是让使用者看清楚程序信息,第二个是显示错误的汇编代码信息(其实不是它想显示,而是masm 程序在显示错误信息时被暂它停了,以便让你看清楚你的源代码错在哪里)。5、:和 goto 为什么要把这两个命令联合起来介绍?因为它们是分不开的,无论少了哪个或多了哪个都会出错。goto 是个跳转命令, :是一个标签。 当程序运行到goto 时,将自动跳转到 :定义的部分去执行了 (是不是分不开?) 。例五中倒数第5 行行首出现一个 :,则程序在运行到goto 时就自动跳转到 :标签定义的部分执行,结果是显示脚本usage(usage 就是标签名称) 。不难看出, goto 命令就是根据这个冒号和标签名称来寻找它该跳转的地方,它们是一一对应的关系。goto 命令也经常和if 命令结合使用。 至于这两个命令具体用法,参照例五。goto 命令的另一种用法一:提前结束程序。在程序中间使用goto 命令跳转到某一标签,而这一标签的内容却定义为退出。如:goto end :end 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - 这里 :end 在脚本最后一行!其实这个例子很弱智,后面讲了if 命令和组合命令你就知道了。6、% 这个百分号严格来说是算不上命令的,它只是批处理中的参数而已(多个%一起使用的情况除外,以后还将详细介绍), 但千万别以为它只是参数就小看了它(看看例五中有多少地方用到它?),少了它批处理的功能就减少了51%了。看看例七:net use %1ipc$ %3 /u:%2 copy 11.BAT %1admin$system32 /y copy 13.BAT %1admin$system32 /y copy ipc2.BAT %1admin$system32 /y copy NWZI.EX E %1admin$system32 /y attrib %1admin$system3210.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 部分用批处理来自动化完成了。烦!就好象一个半老女人到了更年期,什么事都想唠叨几句,什么事都感到不舒服,看谁谁不爽。明知山有虎, 偏向虎山行,最后留下一身伤痕无功而返时,才发现自己竟然如此脆弱,如此渺小,如此不堪一击。徘徊在崩溃的边缘,突然回想起了自己最后一次扁人的那一刻,还真有点怀念 (其实我很不喜欢扁人,更不喜欢被人扁)。我需要发泄,我用手指拼命的敲打着键盘,在一阵接一阵有节奏的声音中,屏幕上出现了上面的这些文字。可难道这就是发泄的另一种方式吗?中国人还是厉害,早在几千年前孔老夫子就说过“ 唯女子与小人,难养也” ,真 *有先见之明,佩服!虽然是在发泄,不过大家请放心, 以我的脾气,既然决定写这篇教程,就一定会尽力去写好,写完美,绝对不给自己留下遗憾,要不这教程就不是我写的!曾经有一篇经典的批处理教程出现在你的屏幕上,你没有保存,直到找不到它的链接你才后悔莫及,人世间最大的痛苦莫过于此。如果上天能给你一个再看一次的机会,你会对那篇教程说三个字:我爱你!如果非要给这份爱加上一个期限,你希望是100 年。因为 100 年后,你恐怕早已经挂了!而现在,你的屏幕上出现了这篇你正在看的批处理教程,虽然不如你曾经看的那篇经典,但如果勉强还过的去。你会爱它吗?时间会有50 年那么长吗?答案是:试试看吧。批处理脚本中最重要的几个命令,将在这一章详细介绍,但是很遗憾,有些细节到现在我都没掌握的很好,甚至还有些生分。如同还不太懂得爱一样。但我一直都在努力,即使一直都没有收获。所以可能讲的会比较笼统,但我会告诉你方法,剩下的就是时间问题了,需要自己去磨练。让我们共同努力吧。冰冻三尺非一日之寒,滴水穿石非一日之功。有些事情,比如学批处理,比如爱一个人,都是不名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 22 页 - - - - - - - - - 能速成的,甚至还会有付出艰辛而收获为甚微的情况。再次重申,看这篇教程的时候,一定要静下心来,除非你已经掌握了这篇教程的所有东西-但那也就不必看了,浪费时间!7、if 接上一章,接着讲if 命令。总的来说, if 命令是一个表示判断的命令,根据得出的每一个结果,它都可以对应一个相应的操作。关于它的三种用法,在这里分开讲。(1)、输入判断。还是用例五里面的那几句吧:if %1= goto usage if %1=/? goto usage if %1=help goto usage 这里判断输入的参数情况,如果参数为空(无参数),则跳转到usage ;如果参数为 /?或 help 时(大家一般看一个命令的帮助,是不是输入的/?或 help 呢,这里这么做只是为了让这个脚本看起来更像一个真正的程序) ,也跳转到 usage 。这里还可以用否定形式来表示“ 不等于 ” ,例如: if not %1= goto usage ,则表示如果输入参数不为空就跳转到usage(实际中这样做就没意义了,这里介绍用法,管不了那么多了,呵呵。)是不是很简单?其实翻译成中文体会一下就understand 了。(2)、存在判断。再看例二里这句:if exist C:Progra1TencentAD*.gif del C:Progra1TencentAD*.gif 如果存在那些gif 文件,就删除这些文件。当然还有例四,都是一样的道理。注意,这里的条件判断是判断存在的, 当然也可以判断不存在的,例如下面这句 “ 如果不存在那些gif 文件则退出脚本 ” :if not exist C:Progra1TencentAD*.gif exit。只是多一个not 来表示否定而已。(3)、结果判断。还是拿例五开刀(没想到自己写的脚本,竟然用处这么大,呵呵):masm %1.asm if errorlevel 1 pause & edit %1.asm link %1.obj 先对源代码进行汇编, 如果失败则暂停显示错误信息,并在按任意键后自动进入编辑界面;否则用 link程序连接生成的obj 文件。这里只介绍一下和if 命令有关的地方, &命令后面会讲到。这种用法是先判断前一个命令执行后的返回码(也叫错误码,DOS 程序在运行完后都有返回码),如果和定义的错误码符合 (这里定义的错误码为1) ,则执行相应的操作 (这里相应的操作为pause & edit %1.asm部分)。另外,和其他两种用法一样,这种用法也可以表示否定。用否定的形式仍表达上面三句的意思,代码变为:masm %1.asm if not errorlevel 1 link %1.obj pause & edit %1.asm 看到本质了吧?其实只是把结果判断后所执行的命令互换了一下,“if not errorlevel 1”和“if errorlevel 0” 的效果是等效的,都表示上一句masm 命令执行成功(因为它是错误判断,而且返回码为0,0 就表示否定,就是说这个错误不存在,就是说 masm 执行成功)。这里是否加not,错误码到底用0 还是 1,是值得考虑的两个问题,一旦搭配不成功脚本就肯定出错,所以一定要体会的很深刻才行。如何体会的深刻?练习!自己写一个脚本,然后把有 not 和没有 not 的情况,返回码为0 或 1 的情况分别写进去执行 (怎么, 嫌麻烦啊?排列组合算一下才四中情况你就嫌麻烦了?后面介绍管道命令和组合命令时还有更麻烦的呢!怕了?呵呵。),这样从执行的结果中就能很清楚的看出这两种情况的区别。这种用 errorlevel 结果判断的用法是if 命令最难的用法,但也恰恰是最有用的用法,如果你不会用errorlevel 来判断返回码,则要达到相同的效果,必须用else 来表示 “ 否则 ” 的操作,是比较麻烦的。以上代码必须变成:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 22 页 - - - - - - - - - masm %1.asm if exist %1.obj link %1.obj else pause & edit %1.asm 关于 if 命令的这三种用法就say 到这里,理解很简单,但应用时就不一定用的那么得心应手,主要是熟练程度的问题。可能有的朋友有点惊讶,我怎么没给出类似下面三行的用法介绍,是因为下面三行是 if 命令帮助里对它自身用法的解释,任何人只要一个“if /?”就能看到,我没有必要在这里多费口舌;更重要的原因, 是我觉得这样介绍的不清楚,看的人不一定看的懂,所以我采用上面自己对if 命令的理解来介绍。一定要注意的是,这三种用法的格式各不相同,而且也是不能改变的,但实际上可以互换(以为从本质上讲,这三种用法都是建立在判断的基础上的,哲学教我们学会透过现象看事物本质!)。有兴趣的朋友可以自己研究一下。IF NOT ERRORLEVEL number do command IF NOT string1=string2 do command IF NOT EX IST filename do command 8、call 学过汇编或C 的朋友,肯定都知道call 指令表示什么意思了,在这里它的意思其实也是一样的。在批处理脚本中, call 命令用来从一个批处理脚本中调用另一个批处理脚本。看例八(默认的三个脚本文件名分别为start.bat 、10.bat 和 ipc.bat ):start.bat : CALL 10.BAT 0 10.bat : ECHO %IPA%.%1 HFIND.TMP CALL ipc.bat IPCFind.txt ipc.bat :for /f tokens=1,2,3 delims= %i in (%1) do call HACK.bat %i %j %k 有没有看出什么不对的地方?没看出来啊?没看出来就对了,其实就没有不对的地方嘛,你怎么看的出来!从上面两个脚本, 你可以得到如下信息: 1、脚本调用可以灵活运用,循环运用、 重复运用。 2、脚本调用可以使用参数!关于第一点就不多说了,聪明的你一看就应该会,这里说一下第二点。在 start.bat 中,10.bat 后面跟了参数0,在执行时的效果, 其实就是把 10.bat 里的参数 %1 用 0 代替。在 start.bat 中, ipc.bat 后面跟了参数ipcfind.txt (一个文件,也可以做参数),执行时的效果,就是用 ipc.bat 中的每一行的三个变量(这里不懂没关系,学过for 命令后就懂了),对应代换ipc.bat 中的%i 、%j 和%k 。这里参数调用是非常灵活的,使用时需要好好体会。在初学期间,可以先学习只调用脚本, 至于连脚本的参数一起使用的情况,在后面的学习中自然就会有比较深刻的理解,这是因为当你已经可以灵活运用批处理脚本后,如何使代码写的更精简更完美更高效就自然包括到了考虑的范围,这时候你就会发现在调用脚本时直接加入参数,可以使代码效率加倍。By the way ,上面的这几个脚本, 都是 Bat.Worm.Muma病毒的一部分, 在后面的教程里,大家将有机会见到这个病毒的真面目。那是不是说, 在同一个目录下至少存在两个批处理脚本文件(只有一个你调用谁?) ?呵呵,注意了,这句话错了!只有一个照样可以调用-调用自身!看例九(默认脚本文件名a.bat ):net send %1 This is a call example. call a.bat 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 22 页 - - - - - - - - - 这两句一结合,效果自然不怎么样,因为只有一台机器来发消息,谁怕谁啊?我给你来个礼尚往来!可如果有 100 台机器同时执行,而且每台机器开10 和窗口同时向一个目标机器发消息的话,呵呵。这里 call a.bat 的作用就是调用自身,执行完前一句net send 命令后再调用自身,达到了循环执行的目的。给出一个很有意思的脚本,有兴趣的朋友可以实验一下。例十(默认脚本文件名为a.bat):call a.bat 一定要在 DOS 窗口下执行,否则只会看到一个窗口一闪而过,看不到最后结果。等执行完后,当脚本被执行了1260 次,别忘了想一下到底是为什么!爱情有时候跟这个脚本一样,一旦陷入死循环,最后的结果都是意想不到的。只是爱情,绝对不会等到被毫无理由的循环这么多次,也许在第三次时就出现了love is aborted 的提示。有关某个命令的详细信息,请键入HELP 命令名ASSOC 显示或修改文件扩展名关联。AT 计划在计算机上运行的命令和程序。ATTRIB 显示或更改文件属性。BREAK 设置或清除扩展式CTRL+C 检查。CACLS 显示或修改文件的访问控制列表(ACLs) 。CALL 从另一个批处理程序调用这一个。CD 显示当前目录的名称或将其更改。CHCP 显示或设置活动代码页数。CHDIR 显示当前目录的名称或将其更改。CHKDSK 检查磁盘并显示状态报告。CHKNTFS 显示或修改启动时间磁盘检查。CLS 清除屏幕。CMD 打开另一个Windows 命令解释程序窗口。COLOR 设置默认控制台前景和背景颜色。COMP 比较两个或两套文件的内容。COMPACT 显示或更改NTFS 分区上文件的压缩。CONVERT 将 FAT 卷转换成NTFS。您不能转换当前驱动器。COPY 将至少一个文件复制到另一个位置。DATE 显示或设置日期。DEL 删除至少一个文件。DIR 显示一个目录中的文件和子目录。DISKCOMP 比较两个软盘的内容。DISKCOPY 将一个软盘的内容复制到另一个软盘。DOSKEY 编辑命令行、调用Windows 命令并创建宏。ECHO 显示消息,或将命令回显打开或关上。ENDLOCAL 结束批文件中环境更改的本地化。ERASE 删除至少一个文件。EXIT 退出CMD.EX E 程序 (命令解释程序 )。FC 比较两个或两套文件,并显示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 22 页 - - - - - - - - - 不同处。FIND 在文件中搜索文字字符串。FINDSTR 在文件中搜索字符串。FOR 为一套文件中的每个文件运行一个指定的命令。FORMAT 格式化磁盘,以便跟Windows 使用。FTYPE 显示或修改用于文件扩展名关联的文件类型。GOTO 将 Windows 命令解释程序指向批处理程序中某个标明的行。GRAFTABL 启用 Windows 来以图像模式显示扩展字符集。HELP 提供 Windows 命令的帮助信息。IF 执行批处理程序中的条件性处理。LABEL 创建、更改或删除磁盘的卷标。MD 创建目录。MKDIR 创建目录。MODE 配置系统设备。MORE 一次显示一个结果屏幕。MOVE 将文件从一个目录移到另一个目录。PATH 显示或设置可执行文件的搜索路径。PAUSE 暂停批文件的处理并显示消息。POPD 还原 PUSHD 保存的当前目录的上一个值。PRINT 打印文本文件。PROMPT 更改 Windows 命令提示符。PUSHD 保存当前目录,然后对其进行更改。RD 删除目录。RECOVER 从有问题的磁盘恢复可读信息。REM 记录批文件或CONFIG.SYS 中的注释。REN 重命名文件。RENAME 重命名文件。REPLACE 替换文件。RMDIR 删除目录。SET 显示、设置或删除Windows 环境变量。SETLOCAL 开始批文件中环境更改的本地化。SHIFT 更换批文件中可替换参数的位置。SORT 对输入进行分类。START 启动另一个窗口来运行指定的程序或命令。SUBST 将路径跟一个驱动器号关联。TIME 显示或设置系统时间。TITLE 设置 CMD.EXE 会话的窗口标题。TREE 以图形模式显示驱动器或路径的目录结构。TYPE 显示文本文件的内容。VER 显示 Windows 版本。VERIFY 告诉 Windows 是否验证文件是否已正确写入磁盘。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 22 页 - - - - - - - - - VOL 显示磁盘卷标和序列号。XCOPY 复制文件和目录树。appwiz.cpl- 添加删除程序control userpasswords2-用户帐户设置cleanmgr- 垃圾整理CMD- 命令提示符可以当作是Windows 的一个附件, Ping ,Convert 这些不能在图形环境下 使用的功能要借助它来完成。cmd-jview察看 Java 虚拟机版本。- 调用的则是系统内置的NTVDM ,一个 DOS 虚拟机。它完全是一个类似Virtual PC 的 虚拟环境,和系统本身联系不大。当我们在命令提示符下运行DOS 程序时, 实际上也是自动转移到NTVDM 虚拟机下,和CMD 本身没什么关系。calc- 启动计算器chkdsk.exe-Chkdsk磁盘检查compmgmt.msc-计算机管理conf- 启动netmeeting control userpasswords2-User Account 权限设置devmgmt.msc- 设备管理器diskmgmt.msc- 磁盘管理实用程序dfrg.msc- 磁盘碎片整理程序drwtsn32- 系统医生dvdplay- 启动 Media Player dxdiag-DirectX Diagnostic Tool gpedit.msc- 组策略编辑器gpupdate /target:computer /force 强制刷新组策略名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 22 页 - - - - - - - - - eventvwr.exe- 事件查看器explorer- 打开资源管理器logoff- 注销命令lusrmgr.msc- 本机用户和组msinfo32- 系统信息msconfig- 系统配置实用程序net start (servicename)-启动该服务net stop (servicename)-停止该服务notepad- 打开记事本nusrmgr.cpl- 同 control userpasswords,打开用户帐户控制面板Nslookup-IP地址侦测器oobe/msoobe /a- 检查 XP 是否激活perfmon.msc- 计算机性能监测程序progman- 程序管理器regedit- 注册表编辑器regedt32- 注册表编辑器regsvr32 /u *.dll- 停止 dll 文件运行route print- 查看路由表rononce -p -15秒关机rsop.msc- 组策略结果集rundll32.exe rundll32.exe %Systemroot%System32shimgvw.dll,ImageView_Fullscreen-启动一个空白的 Windows 图片和传真查看器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 22 页 - - - - - - - - - secpol.msc- 本地安全策略services.msc- 本地服务设置sfc /scannow- 启动系统文件检查器sndrec32- 录音机