什么是批处理文件(什么是批处理文件)

2025-06-29 06:30:02 :0

什么是批处理文件(什么是批处理文件)

其实什么是批处理文件的问题并不复杂,但是又很多的朋友都不太了解什么是批处理文件,因此呢,今天小编就来为大家分享什么是批处理文件的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

什么是批处理文件

批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。我不想让自己写的教程枯燥无味,因为牵缠到代码(批处理的内容算是代码吧?)的问题本来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理(晕,怎么又是爱?到底批处理和爱有什么关系?答案:没有!)。再说句“闲话”:要学好批处理,DOS基础一定要牢!当然脑子灵活也是很重要的一方面。
例一、先给出一个最easy的批处理脚本让大家和它混个脸熟,将下面的几行命令保存为name.bat然后执行(以后文中只给出代码,保存和执行方式类似):
ping sz.tencent.com 》 a.txt
ping sz1.tencent.com 》》 a.txt
ping sz2.tencent.com 》》 a.txt
ping sz3.tencent.com 》》 a.txt
ping sz4.tencent.com 》》 a.txt
ping sz5.tencent.com 》》 a.txt
ping sz6.tencent.com 》》 a.txt
ping sz7.tencent.com 》》 a.txt
exit
是不是都能看的懂?是不是很easy?但它的作用却是很实用的,执行这个批处理后,可以在你的当前盘建立一个名为a.txt的文件,它里面记录的信息可以帮助你迅速找到速度最快的QQ服务器,从而远离“从服务器中转”那一痛苦的过程。这里》的意思,是把前面命令得到的东西放到后面所给的地方,》》的作用,和》的相同,区别是把结果追加到前一行得出的结果的后面,具体的说是下一行,而前面一行命令得出的结果将保留,这样可以使这个a.txt文件越来越大(想到如何搞破坏了??)。By the way,这个批处理还可以和其他命令结合,搞成完全自动化判断服务器速度的东东,执行后直接显示速度最快的服务器IP,是不是很爽?后面还将详细介绍。
例二、再给出一个已经过时的例子(a.bat):
@echo off
if exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gif
a.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
这里利用了netstat命令,检查所有的网络端口状态,只需要你清楚常见木马所使用的端口,就能很easy的判断出来是否被人种了冰河。然这不是确定的,因为冰河默认的端口7626,完全可以被人修改。这里介绍的只是方法和思路。这里介绍的是方法和思路稍做改动,就变成可以检查其他木马的脚本了,再改动一下,加进去参数和端口及信息列表文件后,就变成自动检测所有木马的脚本了。呵呵,是不是很过瘾?脚本中还利用了组合命令&&和管道命令|,后面将详细介绍。
例四,借批处理自动清除系统垃圾,脚本如下:
@echo off
if exist c:\windows\temp\*.* del c:\windows\temp\*.*
if exist c:\windows\Tempor~1\*.* del c:\windows\Tempor~1\*.*
if exist c:\windows\History\*.* del c:\windows\History\*.*
if exist c:\windows\recent\*.* del c:\windows\recent\*.*
将以上脚本内容保存到autoexec.bat里,每次开机时就把系统垃圾给自动删除了。这里需要注意两点:一、DOS不支持长文件名,所以就出现了Tempor~1这个东东;二、可根据自己的实际情况进行改动,使其符合自己的要求。
怎么样,看到这里,你对批处理脚本是不是已经有点兴趣了?是不是发现自己已经慢慢爱上了这个东东?别高兴的太早,爱不是一件简单的事,它也许能带给你快乐和幸福,当然也能让你痛苦的想去跳楼。如果你知道很难还敢继续的话,I 服了 YOU!继续努力吧,也许到最后你不一定得到真爱(真的有这可能,爱过的人都知道),但你可以体会到整个爱的过程,就是如此。 酸、苦和辣,有没有甜天知道。
为什么会把批处理和爱情扯上关系?不是我无聊,也不是因为这样写有趣多少,原因有二:其一,批处理和爱情有很多相同的地方,有些地方我用“专业”的行话解释不清(我不怀疑自己的表达能力,而是事情本身就不好说清楚),说了=没说,但用地球人都知道的爱情一比喻(爱情是什么?我**怎么知道!!),没准你心里一下就亮堂了,事半功倍,何乐而不为?其二,我这段时间状态不是很好,感冒发烧头疼鼻塞,但主要还是感情上精神摧残,搞的人烦透了,借写教程之际感慨几句,大家就全当买狗皮膏药了,完全可以省略不看(也许还真有点效果----不至于让你看着看着就睡着了,把头磕了来找我报销医药费)。说不定下次的教程中大家还会看到杨过、张无忌等金老前辈笔下的英雄们。
看过第一章的朋友,一定对批处理有了初步的印象,知道它到底是用来干什么的了。但你知道运用批处理的精髓在哪里吗?其实很简单:思路要灵活!没有做不到的,只有想不到的。这和爱情就有点不同了,因为爱情的世界是两个人的世界,一厢情愿不叫爱情(补充:那叫单恋。废话!)而批处理却是一个人的天堂,你可以为所欲为,没有达不到的境界!
批处理看起来杂乱无章,但它的逻辑性之强,绝对不比其他程序语言(如汇编)低,如果你写的脚本是一堆乱麻,虽然每一行命令都正确,但从头执行到尾后,不一定得到你想要的结果,也许是一屏幕的Bad command or fail name。这又和爱情有了共同点:按步骤来经营,缺少或增多的步骤都可能导致不想看见的结果。陷入爱河的朋友,相信没有不肯定这句话的。我的爱情批处理,输出的结果不是Bad command or fail name,屏幕是这么显示的:‘你的爱情’不是内部或外部命令,也不是可运行的程序或批处理文件。然后就是光标不停闪动,等待这下一次错误的输入。
从这一章开始,将由浅入深的介绍批处理中常用的命令,很多常见DOS命令在批处理脚本中有这广泛的应用,它们是批处理脚本的BODY部分,但批处理比DOS更灵活多样,更具备自动化。要学好批处理,DOS一定要有比较扎实的基础。这里只讲述一些比较少用(相对来说)的DOS命令,常用命令如COPY、DIR等就不做介绍了(这些看似简单的命令实际复杂的很,我怕自己都说不清楚!)。
例五,先看一个实例。这是一个很有意思的脚本,一个小巧实用的好东东,把批处理“自动化”的特点体现的淋漓尽致。先介绍一下这个脚本的来历:大家都知道汇编程序(MASM)的上机过程,先要对源代码进行汇编、连接,然后再执行,而这中间有很多环节需要输入很多东西,麻烦的很(只有经历过的朋友才懂得)。如何使这个过程变的简单呢?在我们搞汇编课程设计时,我“被逼”写了这个脚本,用起来很爽,呵呵。看看脚本内容:
@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***@sina.com
::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
echo Default BAT file name is START.BAT
::display usage
先不要被这一堆的东西给吓怕了,静下心来仔细的看(回想一下第一章中第一段是怎么写的!!)。已经给出了每一行命令的解释,两个冒号后面的内容为前一行内容解释的E文(害怕E文的朋友也不用担心,都很easy,一看就懂了,实在不懂了不会查词典啊,这么懒?),在脚本执行时不显示,也不起任何作用。倒数第5行行首有一个冒号,可不是笔误哦!具体作用后面会详细讲到。此脚本中masm和link是汇编程序和连接程序,必须和edit程序以及你要的源代码(当然还有这个脚本,废话!)一起在当前目录中。使用这个批处理脚本,可以最大可能的减少手工输入,整个过程中只需要按几下回车键,即可实现从汇编源代码到可执行exe文件的自动化转换,并具备智能判断功能:如果汇编时源代码出现错误(汇编不成功),则自动暂停显示错误信息,并在按任意键后自动进入源代码界面;如果源代码汇编成功,则进行连接,并在连接后自动执行生成的exe文件。另外,由于批处理命令的简单性和灵活性,这个脚本还具备良好的可改进性,简单进行修改就可以符合不同朋友的上机习惯。正在学汇编的朋友,一定别忘了实习一下!
在这个脚本中出现了如下几个命令:@、echo、::、pause、:和goto、%以及if。而这一章就将讲述这几个命令。
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
这里:end在脚本最后一行!其实这个例子很弱智,后面讲了if命令和组合命令你就知道了。
6、%
这个百分号严格来说是算不上命令的,它只是批处理中的参数而已(多个%一起使用的情况除外,以后还将详细介绍),但千万别以为它只是参数就小看了它(看看例五中有多少地方用到它?),少了它批处理的功能就减少了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部分用批处理来自动化完成了。
烦!就好象一个半老女人到了更年期,什么事都想唠叨几句,什么事都感到不舒服,看谁谁不爽。明知山有虎,偏向虎山行,最后留下一身伤痕无功而返时,才发现自己竟然如此脆弱,如此渺小,如此不堪一击。徘徊在崩溃的边缘,突然回想起了自己最后一次扁人的那一刻,还真有点怀念(其实我很不喜欢扁人,更不喜欢被人扁)。我需要发泄,我用手指拼命的敲打着键盘,在一阵接一阵有节奏的声音中,屏幕上出现了上面的这些文字。可难道这就是发泄的另一种方式吗?中国人还是厉害,早在几千年前孔老夫子就说过“唯女子与小人,难养也”,真**有先见之明,佩服!虽然是在发泄,不过大家请放心,以我的脾气,既然决定写这篇教程,就一定会尽力去写好,写完美,绝对不给自己留下遗憾,要不这教程就不是我写的!
曾经有一篇经典的批处理教程出现在你的屏幕上,你没有保存,直到找不到它的链接你才后悔莫及,人世间最大的痛苦莫过于此。如果上天能给你一个再看一次的机会,你会对那篇教程说三个字:我爱你!如果非要给这份爱加上一个期限,你希望是100年。因为100年后,你恐怕早已经挂了!而现在,你的屏幕上出现了这篇你正在看的批处理教程,虽然不如你曾经看的那篇经典,但如果勉强还过的去。你会爱它吗?时间会有50年那么长吗?答案是:试试看吧。
批处理脚本中最重要的几个命令,将在这一章详细介绍,但是很遗憾,有些细节到现在我都没掌握的很好,甚至还有些生分。如同还不太懂得爱一样。但我一直都在努力,即使一直都没有收获。所以可能讲的会比较笼统,但我会告诉你方法,剩下的就是时间问题了,需要自己去磨练。让我们共同努力吧。冰冻三尺非一日之寒,滴水穿石非一日之功。有些事情,比如学批处理,比如爱一个人,都是不能速成的,甚至还会有付出艰辛而收获为甚微的情况。再次重申,看这篇教程的时候,一定要静下心来,除非你已经掌握了这篇教程的所有东西----但那也就不必看了,浪费时间!
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:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gif
如果存在那些gif文件,就删除这些文件。当然还有例四,都是一样的道理。注意,这里的条件判断是判断存在的,当然也可以判断不存在的,例如下面这句“如果不存在那些gif文件则退出脚本”:if not exist C:\Progra~1\Tencent\AD\*.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来表示“否则”的操作,是比较麻烦的。以上代码必须变成:
masm %1.asm
if exist %1.obj link %1.obj
else pause & edit %1.asm
关于if命令的这三种用法就say到这里,理解很简单,但应用时就不一定用的那么得心应手,主要是熟练程度的问题。可能有的朋友有点惊讶,我怎么没给出类似下面三行的用法介绍,是因为下面三行是if命令帮助里对它自身用法的解释,任何人只要一个“if /?”就能看到,我没有必要在这里多费口舌;更重要的原因,是我觉得这样介绍的不清楚,看的人不一定看的懂,所以我采用上面自己对if命令的理解来介绍。一定要注意的是,这三种用法的格式各不相同,而且也是不能改变的,但实际上可以互换(以为从本质上讲,这三种用法都是建立在判断的基础上的,哲学教我们学会透过现象看事物本质!)。有兴趣的朋友可以自己研究一下。
IF ERRORLEVEL number do command
IF string1==string2 do command
IF EXIST 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
这两句一结合,效果自然不怎么样,因为只有一台机器来发消息,谁怕谁啊?我给你来个礼尚往来!可如果有100台机器同时执行,而且每台机器开10和窗口同时向一个目标机器发消息的话,呵呵。这里call a.bat的作用就是调用自身,执行完前一句net send命令后再调用自身,达到了循环执行的目的。
给出一个很有意思的脚本,有兴趣的朋友可以实验一下。例十(默认脚本文件名为a.bat):
call a.bat
一定要在DOS窗口下执行,否则只会看到一个窗口一闪而过,看不到最后结果。等执行完后,当脚本被执行了1260次,别忘了想一下到底是为什么!爱情有时候跟这个脚本一样,一旦陷入死循环,最后的结果都是意想不到的。只是爱情,绝对不会等到被毫无理由的循环这么多次,也许在第三次时就出现了love is aborted的提示。
9、find
这是一个搜索命令,用来在文件中搜索特定字符串,通常也作为条件判断的铺垫程序(我怎么突然想起了这四个字?)。这个命令单独使用的情况在批处理中是比较少见的,因为没什么实际意义。还是借例三来说明:
@echo off
netstat -a -n 》 a.txt
type a.txt | find "7626" && echo "Congratulations! You have infected GLACIER!"
del a.txt
pause & exit
先用netstat命令检查是否有冰河默认的端口7626在活动,并把结果保存到a.txt中。然后使用type命令列出a.txt中的内容,再在列出的内容中搜索字符串“7626” ,发现有的话则提示中了冰河,否则退出。看,find命令其实就这么简单,但有一点必须要注意到:如果不使用type命令列出a.txt中的内容,而是直接使用find命令在a.txt中找“7626”(find a.txt "7626" && echo "Congratulations! You have infected GLACIER!"),就必须得给

批处理文件是什么作用是什么

批处理文件是指文件后缀名为“.bat”的文件,它的作用是可以一次批量执行大量的命令。这种文件在dos时期曾被大量使用,win9x时期也有,但已经开始少用了,最典型的是autoexec.bat这个文件了。
1.什么是批处理文件?批处理文件的作用是什么?
批处理文件(Batch File,简称 BAT文件)是一种在DOS 下最常用的可执行文件。它具有灵活的操纵性,可适应各种复杂的计算机操作。所谓的批处理,就是按规定的顺序自动执行若干个指定的DOS命令或程序。即是把原来一个一个执行的命令汇总起来,成批的执行,而程序文件可以移植到其它电脑中运行,因此可以大大节省命令反复输入的繁琐。同时批处理文件还有一些编程的特点,可以通过扩展参数来灵活的控制程序的执行,所以在日常工作中非常实用。
2.批处理文件的格式是什么?
批处理文件起源于DOS时代,在DOS时代的扩展名为.bat(即是batch的缩写),可使用Copy con、Edit、WPS等DOS程序来。
经时代的发展,现今批处理文件已经不止支持DOS下的程序,同时也支持Windows环境程序的运行,在Windows NT以后的平台中,还加入了以.cmd为扩展名的批处理文件,其性能比.bat文件更加优越,执行也与.bat文件一样方便快捷。
注:由于.bat文件是基于16平台下的程序,在Windows NT及以后的32位中运行时偶尔会出现堆栈溢出之类的错误,所以建议在新的系统中尽可能的采用.cmd扩展的批处理文件代替.bat的文件。
3.如何来编写批处理文件?
其实编写批处理文件并没有什么编程环境的要求,任何一个文本器都可以用来编写批处理文件,像DOS下的Edit、WPS以及DOS自带的Copy命令的扩展copy con命令就可以编写,Windows下的记事本、写字板等。
4.批处理文件的工作平台。
由于批处理文件其实就是一个命令的集合,所以批处理文件的工作平台是由这些命令所工作的平台来决定,今天我们在这里主要研究的是Microsoft环境下的批处理文件(.bat和.cmd文件),所以这里的平台,当然也就是指Microsoft的DOS和Windows系统。
5.批处理文件的应用。
现今Windows环境已经如此普及,程序的运行只要点击几次鼠标就可以完成,所以造成很多人都已经不了解批处理文件的作用,特别是那些新接触电脑的用户,而更多的了解它的人却是那些程序设计人员,但不可否认,批处理文件有很多优点是其它程序所无法比拟的,最主要的优点就是编写环境的宽松,编写人员能力要求较低。
其实我们经常可以接触到批处理文件,只是我们很少注意而已,像Windows 9x启动时加载的Autoexec.bat文件就是一个批处理文件,当然这个批处理文件是一个比较特殊的批处理文件,至于详细这个文件的相关介绍,大家可以到网上查看相关的文档。另外就是我们安装程序的时候,经常可以看到有一个黑色的命令行窗口跳出来,这时其实大部分可能性它执行的就是一个批处理文件。

什么是批处理文件有什么作用

1,批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。bat是dos下的批处理文件.cmd是nt内核命令行环境的另一种批处理文件从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。所以从某个程度分析,batch, unix shell, awk, basic, perl 等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全不同。2,作用:批处理文件是.bat文件,可以用文本、建立、修改、打开。把DOS命令一个接一个地输进去,保存后,将该文件的后缀修改为.bat,双击此文件,即可执行该文件里的命令。其实它的作用是让你不用一个接一个的输入命令,一批一批地执行命令。不知道我说的是不是不太清楚?

什么叫批处理文件详细、通俗的,,我笨~~~~

后缀是bat的文件就是批处理文件,是一种文本文件。简单的说,它的作用就是自动的连续执行多条命令,批处理文件的内容就是一条一条的命令。那它有什么用呢?
比如,在启动wps软件时,每次都必须执行
C:\》cd wps
C:\WPS》spdos
C:\WPS》py
C:\WPS》wbx
C:\WPS》wps
如果每次用WPS之前都这样执行一次,您是不是觉得很麻烦呢?
如果有一个方法,只需编写一个批处理文件,就会自动执行刚才的所有命令,您想不想学呢?
当您看完此节,自己编写的第一个批处理文件顺利执行时,您一定会大吃一惊的。
此外电脑每次启动时都会寻找autoexec.bat这条批处理文件,从而可执行一些每次开机都要执行的命令,如设置路径path、加载鼠标驱动mouse、磁盘加速smartdrv等,可以使您的电脑真正自动化。
echo、@、call、pause、rem 是批处理文件最常用的几个命令,我们就从他们开始学起。 echo 表示显示此命令后的字符
echo off 表示在此语句后所有运行的命令都不显示命令行本身
@ 与echo off相象,但它是加在其它命令行的最前面,表示运行时不显示命令行本身。
call 调用另一条批处理文件(如果直接调用别的批处理文件 ,执行完那条文件后将无法执行当前文件后续命令)
pause 运行此句会暂停,显示Press any key to continue... 等待用户按任意键后继续
rem 表示此命令后的字符为解释行,不执行,只是给自己今后查找用的
例:用edita.bat文件,输入下列内容后存盘为c:\a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。
批处理文件的内容为: 文件表示:
echo off 不显示命令行
dir c:\*.* 》a.txt 将c盘文件列表写入a.txt
call c:\ucdos\ucdos.bat 调用ucdos
echo 你好 显示"你好"
pause 暂停,等待按键继续
rem 使用wps 注释将使用wps
cd ucdos 进入ucdos目录
wps 使用wps
批处理文件中还可以像C语言一样使用参数,这只需用到一个参数表示符%。
%表示参数,参数是指在运行批处理文件时在文件名后加的字符串。变量可以从 %0到%9,%0表示文件名本身,字符串用%1到%9顺序表示。
例如,C:根目录下一批处理文件名为f.bat,内容为 format %1
则如果执行C:\》f a: 则实际执行的是format a:
又如C:根目录下一批处理文件的名为t.bat,内容为 type %1 type %2
那么运行C:\》t a.txt b.txt 将顺序地显示a.txt和b.txt文件的内容
if goto choice for 是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。
if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:
1、if "参数" == "字符串" 待执行的命令
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)
如if "%1"=="a" format a:
2、if exist 文件名 待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。如if exist config.sys edit config.sys
3、if errorlevel 数字 待执行的命令
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。如if errorlevel 2 goto x2 DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码
goto 批处理文件运行到这里将跳到goto 所指定的标号处, 一般与if配合使用。 如:
goto end
:end
echo this is the end
标号用 :字符串 表示,标号所在行不被执行
choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……
如: choice /c:dme defrag,mem,end
将显示
defrag,mem,end?
例如,test.bat的内容如下:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag 应先判断数值最高的错误码
if errorlevel 2 goto mem
if errotlevel 1 goto end
:defrag
c:\dos\defrag
goto end
:mem
mem
goto end
:end
echo good bye
此文件运行后,将显示 defrag,mem,end? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。
for 循环命令,只要条件符合,它将多次执行同一命令。
格式FOR
只要参数f在指定的集合内,则条件成立,执行命令
如果一条批处理文件中有一行:
for %%c in (*.bat *.txt) do type %%c
含义是如果是以bat或txt结尾的文件,则显示文件的内容。
autoexec.bat
DOS在启动会自动运行autoexec.bat这条文件,一般我们在里面装载每次必用的程序,如: path(设置路径)、smartdrv(磁盘加速)、 mouse(鼠标启动)、mscdex(光驱连接)、 doskey(键盘管理)、set(设置环境变量)等。
如果启动盘根目录中没有这个文件,电脑会让用户输入日期和时间。
例如,一个典型的autoexec.bat内容如下:
@echo off 不显示命令行
prompt 设置提示符前有目录提示
path c:\dos;c:\;c:\windows;c:\ucdos;c:\tools 设置路径
lh c:\dos\doskey.com 加载键盘管理
lh c:\mouse\mouse.com 加载鼠标管理
lh c:\dos\smartdrv.exe 加载磁盘加速管理
lh c:\dos\mscdex /S /D:MSCD000 /M:12 /V 加载CD-ROM驱动
set temp=c:\temp 设置临时目录

批处理是什么意思

批处理的意思是:对某对象进行批量的处理。

批处理是一种简化的脚本语言,也称作宏。它应用于DOS和Windows系统中,它是由DOS或者Windows系统内嵌的命令解释器(通常是COMMAND. COM或者CMD.EXE)解释运行。类似于Unix中的Shell脚本。批处理文件具有.bat或者.cmd的扩展名,其最简单的例子,是逐行书写在命令行中会用到的各种命令。

更复杂的情况,需要使用if,for,goto等命令控制程序的运行过程,如同C,Basic等中高级语言一样。如果需要实现更复杂的应用,利用外部程序是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。

批处理文件,或称为批处理程序,是由一条条的DOS命令组成的普通文本文件,可以用记事本直接或用DOS命令创建,也可以用DOS下的文本器Edit.exe来。在“命令提示”下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe运行该批处理程序。

一般情况下,每条命令占据一行;当然也可以将多条命令用特定符号(如:&、&&、|、||等)分隔后写入同一行中;还有的情况就是像if、for等较高级的命令则要占据几行、几十甚至几百行的空间。系统在解释运行批处理程序时,首先扫描整个批处理程序,然后从第一行代码开始向下逐句执行所有的命令,直至程序结尾或遇见exit命令或出错意外退出。

符号简介:

回显屏蔽 - "@"

表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。

@用法举例:通过运行批处理文件对比pause和@pause命令即可明了@的效果。

重定向1 - "》" 与 "》》"

将输出信息重定向到指定的设备或文件。系统默认输出到显示器。

如:echo aaaaa》a.txt 即可将本在显示器上显示的信息aaaaa输出到文件a.txt中,屏幕上没有任何显示。如果文件a.txt本来已经存在,该命令将首先擦除a.txt中的所有信息,然后写入信息aaaaa;若a.txt本来就不存在,该命令即可新建一个a.txt文件,并写入信息aaaaa。

echo aaaaa》》a.txt 类似于echo aaaaa》a.txt。区别在于:如果a.txt本已存在,》a.txt会擦除a.txt中的原有内容,而》》a.txt并不擦除原有内容,仅在a.txt文件的末尾添加信息aaaaa。a.txt不存在时,二者没有差别。

所以,"》"做的事情就是“覆盖”,而"》》"做的事情就是“追加”。

需要注意的是,因为数字的特殊性,在echo输出数字时,请在后面加上空格,例如:echo 9313 》a.txt,否则有可能造成输出不完整。

重定向2 - "《"

将输入信息来源重定向为指定的设备或文件。系统默认从显示器读取输入信息。

关于什么是批处理文件和什么是批处理文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

什么是批处理文件(什么是批处理文件)

本文编辑:admin

更多文章:


html网页模板(网页制作设计模板-旅游网页该如何设计模板)

html网页模板(网页制作设计模板-旅游网页该如何设计模板)

大家好,今天小编来为大家解答以下的问题,关于html网页模板,网页制作设计模板-旅游网页该如何设计模板这个很多人还不知道,现在让我们一起来看看吧!本文目录网页制作设计模板-旅游网页该如何设计模板有关婚礼微信邀请函模板(通用8篇)有什么好的H

2025年9月29日 04:45

this love歌词taylor(求Taylor Swift的Love Story的歌词的中文翻译~)

this love歌词taylor(求Taylor Swift的Love Story的歌词的中文翻译~)

今天给各位分享求Taylor Swift的Love Story的歌词的中文翻译~的知识,其中也会对求Taylor Swift的Love Story的歌词的中文翻译~进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目

2025年6月19日 16:30

span标签有内容却不显示(定义一个CSS,但是只有DIV可以显示出来,span等都无法显示)

span标签有内容却不显示(定义一个CSS,但是只有DIV可以显示出来,span等都无法显示)

“span标签有内容却不显示”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看span标签有内容却不显示(定义一个CSS,但是只有DIV可以显示出来,span等都无法显示)!本文目录定义一个CSS,但是只有DIV可以显示出来,

2026年7月29日 21:00

void sort是什么意思(请各位说说void sort里的算法是什么意思)

void sort是什么意思(请各位说说void sort里的算法是什么意思)

这篇文章给大家聊聊关于void sort是什么意思,以及请各位说说void sort里的算法是什么意思对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录请各位说说void sort里的算法是什么意思void sort在C语言中什

2025年6月20日 00:15

学电脑软件开发哪个学校好(电脑软件开发去什么学校学习比较好)

学电脑软件开发哪个学校好(电脑软件开发去什么学校学习比较好)

本篇文章给大家谈谈学电脑软件开发哪个学校好,以及电脑软件开发去什么学校学习比较好对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录电脑软件开发

2026年8月16日 18:45

语言指令有哪些(c语言指令有哪些啊)

语言指令有哪些(c语言指令有哪些啊)

“语言指令有哪些”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看语言指令有哪些(c语言指令有哪些啊)!本文目录c语言指令有哪些啊计算机语言指令分为几类ST语言编程里面的几个指令是什么意思c语言中预处理命令都有哪些C语言32个

2025年12月5日 16:45

subject都有什么意思(“subject ”是什么意思)

subject都有什么意思(“subject ”是什么意思)

大家好,关于subject都有什么意思很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于“subject ”是什么意思的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮

2026年8月15日 06:00

数据库的概念和作用(关于数据库的概念)

数据库的概念和作用(关于数据库的概念)

大家好,数据库的概念和作用相信很多的网友都不是很明白,包括关于数据库的概念也是一样,不过没有关系,接下来就来为大家分享关于数据库的概念和作用和关于数据库的概念的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录关于数

2025年9月9日 10:45

莫奈的网络解释莫奈的网络解释是什么?莫奈的解释莫奈的解释是什么

莫奈的网络解释莫奈的网络解释是什么?莫奈的解释莫奈的解释是什么

这篇文章给大家聊聊关于莫奈,以及莫奈的网络解释莫奈的网络解释是什么对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录莫奈的网络解释莫奈的网络解释是什么莫奈的解释莫奈的解释是什么莫奈风景油画作品经典莫奈油画欣赏莫奈的网络解释莫奈的

2025年7月29日 02:00

网页模板停用不能上报怎么办(请教一下,关于网页模板显示不出来的问题~~)

网页模板停用不能上报怎么办(请教一下,关于网页模板显示不出来的问题~~)

大家好,关于网页模板停用不能上报怎么办很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于请教一下,关于网页模板显示不出来的问题~~的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望

2025年10月22日 22:45

免费阅读小说大全下载(哪些网站可以直接免费TXT下载小说)

免费阅读小说大全下载(哪些网站可以直接免费TXT下载小说)

其实免费阅读小说大全下载的问题并不复杂,但是又很多的朋友都不太了解哪些网站可以直接免费TXT下载小说,因此呢,今天小编就来为大家分享免费阅读小说大全下载的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录哪些网站可以

2026年5月12日 02:45

可视化网站模板(不同模式的网站制作这些知识要知道)

可视化网站模板(不同模式的网站制作这些知识要知道)

大家好,关于可视化网站模板很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于不同模式的网站制作这些知识要知道的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目

2026年3月8日 21:15

dateadd函数的语法参数(在VB6.0中,DateAdd函数中,用“w“,“y“与“d“,我怎么感觉都一样呀,都是天)

dateadd函数的语法参数(在VB6.0中,DateAdd函数中,用“w“,“y“与“d“,我怎么感觉都一样呀,都是天)

“dateadd函数的语法参数”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看dateadd函数的语法参数(在VB6.0中,DateAdd函数中,用“w“,“y“与“d“,我怎么感觉都一样呀,都是天)!本文目录在VB6.0中

2026年2月21日 15:30

springfestival用in oron(the Spring Festival前用in还是on)

springfestival用in oron(the Spring Festival前用in还是on)

其实springfestival用in oron的问题并不复杂,但是又很多的朋友都不太了解the Spring Festival前用in还是on,因此呢,今天小编就来为大家分享springfestival用in oron的一些知识,希望可以

2026年8月28日 02:45

acquaintance歌曲(新年快乐英文歌除了happy new year还有那些)

acquaintance歌曲(新年快乐英文歌除了happy new year还有那些)

大家好,acquaintance歌曲相信很多的网友都不是很明白,包括新年快乐英文歌除了happy new year还有那些也是一样,不过没有关系,接下来就来为大家分享关于acquaintance歌曲和新年快乐英文歌除了happy new y

2026年4月19日 03:15

constantly continuously(constantly怎么读)

constantly continuously(constantly怎么读)

大家好,如果您还对constantly continuously不太了解,没有关系,今天就由本站为大家分享constantly continuously的知识,包括constantly怎么读的问题都会给大家分析到,还望可以解决大家的问题,下

2025年8月8日 18:15

微软windows官网(请问微软的官方网站在哪)

微软windows官网(请问微软的官方网站在哪)

各位老铁们,大家好,今天由我来为大家分享微软windows官网,以及请问微软的官方网站在哪的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录请问微软的

2025年8月4日 08:45

a拼音怎么读(拼音a的发音)

a拼音怎么读(拼音a的发音)

各位老铁们好,相信很多人对a拼音怎么读都不是特别的了解,因此呢,今天就来为大家分享下关于a拼音怎么读以及拼音a的发音的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录拼音a的发音a在汉语拼音中读什么a的拼音是什么怎

2026年5月27日 13:45

官网无需代码构建(国内的无代码开发平台 有推荐吗)

官网无需代码构建(国内的无代码开发平台 有推荐吗)

大家好,官网无需代码构建相信很多的网友都不是很明白,包括国内的无代码开发平台 有推荐吗也是一样,不过没有关系,接下来就来为大家分享关于官网无需代码构建和国内的无代码开发平台 有推荐吗的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我

2025年12月17日 11:00

asp技术主要用来干嘛(ASP能为我们做什么)

asp技术主要用来干嘛(ASP能为我们做什么)

大家好,关于asp技术主要用来干嘛很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于ASP能为我们做什么的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录A

2025年6月24日 23:00

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索