一、DOS 批处理文件的制作
DOS下的可执行文件有三种,分别是EXE,COM和BAT。其中,EXE和COM文件都是二进制形式的,只有BAT文件是文本形式的,可以直接阅读。因此,BAT文件和以上二进制可执行文件相比,内容要简单的多。这些文件内包含着DOS命令的**,通常叫作批处理文件。批处理文件的组成虽然比较简单,但其用处非常大,使用也比较广泛。比如每次都执行一些相同的命令,您一定会觉得非常麻烦,而放在批处理文件中执行的话则轻松得多。 AUTOEXEC.BAT就是一个特殊的批处理文件,它在DOS的启动时自动运行,在系统的配置中发挥着非常大的作用。因此,要学好DOS,就要学好批处理文件。下面介绍批处理文件的命令及其使用。 DOS自带的批处理命令:@:将这个符号放在批文件中其它命令的前面,运行时将不显示命令本身。如@ECHO OFF命令就在批文件首经常用到。 CALL:从一个批文件中调用另一个批文件,调用完后继续执行原来的批文件。用法:CALL [批文件名]注:也可以使用COMMAND/C命令完成同样的操作。 CHOICE:选择命令。这是一个DOS外部命令,但它主要用在批文件中。CHOICE命令执行后将提示可选择的项目,这时通过一个按键来选则。用法:CHOICE:[/C[:]按键表] [/N] [/S] [/T[:]选择值,秒数] [显示文本]其中,/C表示可选则的按键,/N表示不要显示提示信息,/S表示大小写字符敏感方式,/T表示若在批定的时间内没有选则的话,自动执行/C中定义的某个选择值。显示文本是CHOICE命令执行时的提示信息。选择结果将用ERRORLEVEL值来表示。 ECHO:显示指定的信息。通常显示在屏幕上。如ECHO Hello将在屏幕上显示Hello的字样。另外,ECHO ON|OFF用来设置在批文件执行时是否显示命令本身。而ECHO OFF与@的意思一样,但它是一个单独的命令,而不能像@那样放在其它命令之前。 FOR:对于指定的文件运行相应的命令。大家知道,DOS下许多命令支持通配符,如?和*,可以一次指定一批文件,非常方便。然而,并非所有的DOS命令都支持通配符,如TYPE(文件内容显示命令)就不支持。有了FOR命令就没有关系了,利于它可以使TYPE命令可以一次显示多个文件。用法:FOR%变量名 IN(文件集) DO命令 [命令参数]注:以上是FOR命令的固定形式,IN和DO的位置必须正确,否则将提示语法错误。如FOR%F IN(*.*) DO TYPE%F命令就可以实现TYPE命令一次显示多个文件。注:%F是变量名,也可用%G等代替,但前后必须一致。在批文件中用%%F代替。 GOTO:转到批文件内部的某个标号下执行。大家知道,在编程中往往需要重复或跳转到某个地方继续执行,如BASIC语言中的GOTO命令。批文件中的GOTO命令也可以完成类似的功能。用法:GOTO [标号名]其中,标号名是可以随意设置的,如Hello等。设置标号用“:”符号,如“:Hello”,这时用GOTO Hello命令将转到“:Hello”所在的位置继续执行批文件。 IF:条件判断命令。这是一项很有用的批处理命令。用法1:IF [NOT] EXIST文件名命令 [命令参数]意义:如果[不]存在某个文件将执行某个命令。用法2:IF [NOT] ERRORLEVEL错误返回代号命令 [命令参数]意义:如果错误返回代号[不]大于或等于指定的代号将执行某个命令。其中,ERRORLEVEL表示错误返回代号,很有用。对于很多DOS命令,由于执行的结果不同(如执行成功,执行失败,或被用户中断等),这些命令会返回不同的代号,以表示不同的结果。IF ERRORLEVEL命令就根据这个不同结果而产生的不同代号来执行不同的命令,通常用在某条命令之后。如IF ERRORLEVEL 1 ECHO OK!表示如果当前的错误返回代号大于或等于1时将在屏幕上显示“OK!”的字样。用法3:IF [NOT]字符串1==字符串2命令 [命令参数]意义:当字符串1和字符串2[不]相等的时候执行某个命令。 PAUSE:暂停批文件的执行,并显示“按任意键继续”的字样。 REM:添加注解。用于增加文件可读性,将不被执行。也可以用::来代替。 SHIFT:在批文件中改变可替换参数的位置。可替换参数是一种特殊的参数,只能用在批文件中。这些参数是由使用者在执行批处理命令时输入的。比如,我们执行DIR/S/W命令,其中DIR是命令名,/S和/W是它的执行参数。在批文件中,这些命令参数将被分别赋予到可替换参数中,如/S就成的%1,/W就可了%2,以至类推,而命令本身则被赋予%0中。批文件就是利用可替换参数对执行时输入的参数来进行操作的。比如现在有个批处理文件叫MYFILE.BAT,在命令行下执行MYFILE.BAT YES,于是%0的值就是MYFILE.BAT,%1的值就是“YES”,可以在此批文件中用IF等命令判断出%1等参数的值,然后根据这些值的不同执行不同的操作,如IF“%1“==“YES“ GOTO YES。SHIFT命令不带任何参数,执行结果是将%0的值换成原%1的值,而原%1的值变成的原%2的值,以此类推。注意它的不可逆转性。因为批处理文件执行时的运行参数可能很多,可能会超过10个,而可替换参数只能从%0到%9,若想取得%9以后的参数值,只能使用SHIFT命令。这时,整个参数列将向前推。以上是DOS的自带批处理命令,可以看出,这些命令是非常少的,若要编写较复杂的程序,用以上的命令显然不可能实现。这时就需要其它实用的批处理工具了,著名且实用的有TESTIF,STRING,ASET,BATCHMAN,WBAT等,均可在“DOS软件分类下载”中的“脚本工具”中下载。在批处理文件中使用以上的工具可以实现非常强大的功能,甚至可以完成许多高级语言程序的功能。所以,如果您想编者按写批处理文件的话,它们是您不错的选择,不仅有详细的文档,而且还在不断发展中。下面就要谈批处理文件的制作了。其实制作批处理文件并不难,只要掌握了方法就行了。随着您操作次数的增多,您会觉得越来越容易的。首先使用一个文本编辑器,如DOS自带的EDIT命令或其它的编辑工具,如PEDIT等新建一个空白文件(当然,用COPY CON命令直接创建也行),然后在其中根据您想完成的功能输入批处理命令。如果您只是想执行一些的DOS命令的**,则按顺序在每行输入一个DOS命令就行了。但如果您是想完成一些更复杂的操作,就需要以上的批处理命令或上述的批处理工具了。以下是我原来所编的一个从1%慢慢增加到100%的批处理小程序,大家可以用作参考,以编写自己的程序。@echo offbreak offclsset c=0writext 10 1 Wait...be delay 4:loopwritext 10 9%c%%%completed.count cif not%c%==101 goto loopecho.set c=kpush/fbreak on其中,我用到了WRITEXT,COUNT,BE和KPUSH,这些都是批处理工具。WRITEXT是ECHO的增强工具,可以自定义显示的效果。COUNT是变量的计算工具,如原来C的值为1,执行COUNT C后C的值就为2。BE是个强大的批处理增强工具,在Norton Utilties 8.0中带有。KPUSH是键盘缓冲工具。总之,利用批处理命令和批处理增强工具,我们可以编出许多强大的批处理文件来,大家不妨一试。
二、DOS批处理如何单步执行
一: windows的命令行模式(win+R)在里面写CMD就可以进入windows的命令行模式了二:批处理文件批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为.bat或.cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到的用批处理文件来给系统打补丁、批量植入后门程序等。下面就开始我们批处理学习之旅吧。(本文因篇幅较长,所以分成两部份。前半部份讲命令,后半部分讲实例分析。)一、简单批处理内部命令简介 1.Echo命令打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo命令将显示当前回显设置。语法 echo [{on off}] [message] Sample:@echo off/ echo hello world在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用>>> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。 2.@命令表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。 Sample:@echo off@echo Now initializing the program,please wait a minite...@format X:/q/u/autoset(format这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。) 3.Goto命令指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。语法:goto label(label是参数,指定所要转向的批处理程序中的行。) Sample: if{%1}=={} goto noparms if{%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。)@Rem check parameters if null show usage:noparms echo Usage: monitor.bat ServerIP PortNumber goto end标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。 4.Rem命令注释命令,在C语言中相当与/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。 Rem Message Sample:@Rem Here is the description. 5.Pause命令运行 Pause命令时,将显示下面的消息: Press any key to continue... Sample:@echo off:begin copy a:*.* d:\back echo Please put a new disk into driver A pause goto begin在这个例子中,驱动器 A中磁盘上的所有文件均**到d:\back中。显示的注释提示您将另一张磁盘放入驱动器 A时,pause命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理 6.Call命令从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。语法 call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]参数 [Drive:}[Path] FileName指定要调用的批处理程序的位置和名称。filename参数必须具有.bat或.c
三、DOS调用BAT
1.DOS下如何调用BAT文件、命令是什么?
在dos命令行提示符下,直接输入.bat文件" highlight="true">bat文件的名称,比如:test.bat,直接输入test或test.bat,如果当前路径与bat文件不在一个路径下,在加上bat文件的路径,比如:c:\test\test.bat。
2.DOS下生成BAT的命令是什么?
在dos命令行提示符下,输入edit,按回车,会打开文本编辑器edit,你可以直接将dos命令输入进去,然后保存为文件名.bat即可。
或者,也可以用copy con命令,其格式如下:COPY CON test.bat
这个命令就是把键盘输入保存到test.bat文件中,当你输入这个命令后,DOS将会等待你的输入,输入完成后按CTRL+Z保存。
小提示:COPY CON命令是把键盘输入拷贝一个地方(CON是MS-DOS预定义的标准输入设备,即键盘)。
四、DOS批处理如何注释好几行内容
1、记事本新建一个txt修改后缀为bat记事本编辑。
2、我们输入代码echo“批处理注释"rem这个是显示文字pause。
3、运行看看结果是什么,显示的是rem这个是显示文字,这样就起到了注释的效果。
4、输入echo“批处理注释"::这个是显示文字pause。
5、看看运行结果里面找不到::这个是显示文字的信息。
6、这个是显示文字的信息,这段代码在bat文件中存在,运行的时候也看不到用做注释。
文章分享结束,DOS 批处理和DOS调用BAT的答案你都知道了吗?欢迎再次光临本站哦!