教你认识批处理一(教程)
- 格式:doc
- 大小:63.00 KB
- 文档页数:9
批处理基本入门(以及一些dos常用命令)本文档中的文件未写明路径的情况下,均为和bat文件所在的当前路径下。
1.echo命令和@echo一般用于打印信息,也可以讲内容输出到文件中,文件不存在则自动创建,例如echo messageTXT > test.txt。
@不现实当前语句本身,例如@echo message注意:@echo off不但关闭以后命令的回显,连echo off命令本身也不显示通常有输出内容的命令后面加> nul,就会屏蔽显示的信息。
2.rem命令和: :都是表示注释的意思。
3.pause命令暂停运行,运行显示:请按任意键继续. . .4.errorlevel命令程序返回码echo %errorlevel%。
每个命令运行结束,可以用这个命令行格式查看返回码。
用于判断刚才的命令是否执行成功,默认值为0,一般命令执行出错会设errorlevel =15.title命令设置当前窗口的标题title newTitle6.color命令设置当前窗口颜色和字体颜色color 70 第一个为背景色16进制数,第二个为前景色。
取值范围:0~F。
如果没有给定任何参数,该命令会将颜色还原到CMD.EXE 启动时的颜色7.goto命令这是个跳转命令,在批处理中允许以“:XXX”来构建一个标号,然后用GOTO XXX跳转到标号:XXX处,然后执行标号后的命令。
8.find命令搜索文件中的字符串。
基本格式:find [/i] [/n] 文件路径。
例如:find -i –n “fanfan” fanfan.txt 忽略大小写搜索fanfan.txt文件中fanfan这个字符串,并显示所在的行号。
9.type命令打印显示(查看)一个文本文件类型的文件到控制台。
例如:type fanfan.txt扩展:可以配合find命令一起使用,例如type fanfan.txt | find -i -n “fanfan”10.start命令批处理中异步调用外部程序的命令,即异步执行,不需要得到外部程序运行完毕后才能进行本程序的向下执行。
最全批处理命令学习资料【完美版】
批处理命令是一个强大的Windows命令行工具,用于在Windows平台上自动执行一些常见的任务。
使用批处理命令可以自动化一些重复的任务,从而节省时间和提高工作效率。
本文将提供一个最全的批处理命令学习资料,以帮助初学者快速入门。
批处理介绍
批处理是一个Windows命令行工具,可以自动执行一系列命令、复制文件、移动文件、压缩文件、打包文件等等。
它可以将一个或多个命令以及其参数组合在一个或多个.bat文件中。
一个.bat文件包含了许多命令,每个一行或多行,可以通过批处理脚本进行执行。
批处理命令主要是由操作符、参数和文件名组成,在使用批处理脚本的时候需要注意它们的使用规则。
下面将列举常用的批处理命令。
批处理命令详解
@echo off 命令
@echo off 命令用来控制批处理文件是否显示命令行中执行的语句,一般情况下建议开启该指令,以确保脚本的正确性。
echo 命令
echo 命令用于向屏幕输出信息或将输出的信息定向到一个文件中。
例如:
``` echo。
批处理教程批处理是一种用于编写一系列命令的脚本语言,它可以自动化执行一些常规的任务。
在早期的计算机系统中,批处理被广泛使用,因为它可以简化复杂的操作过程并提高工作效率。
本教程将介绍批处理的基础知识和常用命令,帮助读者快速了解和使用批处理。
一、什么是批处理批处理是一种文本文件,其中包含电脑执行的一系列命令。
它可以批量执行这些命令,而不需要用户手动输入每个命令。
批处理通常以“.bat”或“.cmd”为扩展名,并可以在命令提示符下执行。
二、批处理的基本语法批处理可以用任何文本编辑器创建,并以“.bat”或“.cmd”为后缀。
它通常由一系列命令组成,每个命令占用一行。
示例:@echo offecho Hello, World!pause以上示例中,“@echo off”是批处理中的一个特殊命令,表示不显示每个命令的执行结果。
如果不使用该命令,批处理会显示每个命令的执行过程。
“echo Hello, World!”将字符串“Hello, World!”输出到命令提示符窗口。
“pause”命令用于在执行完所有命令之后暂停批处理,直到用户按下任意键。
三、常用批处理命令1. echo:用于将文本输出到命令提示符窗口。
2. pause:暂停批处理的执行,直到用户按下任意键。
3. cd:改变当前目录。
4. dir:显示当前目录下的文件和文件夹列表。
5. copy:复制文件。
6. del:删除文件。
7. md:创建新的文件夹。
8. rd:删除文件夹。
9. rem:注释代码行,不会被批处理执行。
四、变量和运算符批处理允许使用变量和运算符来处理需要计算的值。
示例:set number=10set /A result=%number%+5echo %result%以上示例中,“set number=10”定义了一个名为“number”的变量,其值为10。
“set /A result=%number%+5”使用“/A”选项来对变量进行算术操作,将“number”的值与5相加,并将结果赋给“result”变量。
1 前言无意中发现了批处理的强悍作用是不容忽视的,而在几周之前我连其概念都不知道。
批处理在某些情况下有着与编程类似的思想,有人说批处理是一种宏。
从应用范围上来看,批处理的用途非常广泛。
了解到了其实用性,加之我有C语言做基础,是以有了学习批处理的想法。
可以说我对批处理的学习几乎是从零开始的,只是在工作之余在网上自行搜索浏览探索尝试的。
如果您也对批处理有兴趣的话,不妨看看下文,共同学习一番。
[声明]:本文可以作为了解并熟悉批处理的参考,但并不保证文中所有的概念、理论、用法及操作的正确性或规范性。
如果本文(系列)存在错误或纰漏,本人对此表示抱歉,并欢迎读者指正。
1.1 什么是批处理?从内容上看,批处理文件包含了大量的基本DOS命令,是一种可执行文件。
该文件运行时能按照其规则将其中的命令逐一执行。
使用批处理文件进行的批量的命令处理的过程,称之为批处理。
批处理文件(Batch File,简称BAT文件)是一种在DOS下最常用的可执行文件。
它具有灵活的操纵性,可适应各种复杂的计算机操作。
所谓的批处理,就是按规定的顺序自动执行若干个指定的DOS命令或程序。
即是把原来一个一个执行的命令汇总起来,成批的执行,而程序文件可以移植到其它电脑中运行,因此可以大大节省命令反复输入的繁琐。
同时批处理文件还有一些编程的特点,可以通过扩展参数来灵活的控制程序的执行,所以在日常工作中非常实用。
[1]批处理文件的后缀名为.bat(Batch的缩写)。
可以用绝大多数的文本编辑工具进行编辑。
由于批处理文件的实质就是一个命令的集合,所以批处理文件的工作平台是由这些命令所工作的平台来决定,如今Microsoft环境下的批处理文件(.bat和.cmd 文件)的平台,当然也就是Microsoft的DOS和Windows系统。
[1]1.2 了解与使用基本DOS命令说到批处理,我们不得不先讨论一些基本的DOS命令。
对于"命令"("Command")一词,实际上就体现了我们与计算机的交流过程。
批文件实际上就是带有.bat 的文件,它具有一定的语法和有效的命令/ 指令集。
运行一个批文件,只需敲入文件名,并不需要敲入 .bat 后缀名.一.什么是批处理文件批处理文件( BATCHFILE ,简称 BAT 文件)是一种在 DOS 下最常用的可执行文件。
它具有灵活的操纵性,可适应各种复杂的计算机操作(指在 DOS 下)。
所谓的批处理,就是按规定的顺序自动执行若干个指定的 DOS 命令或程序。
即是把原来一个一个执行的命令汇总起来,成批的执行。
二.如何编辑一个 BAT 文件BAT 文件的编写规则也很简单,即一条命令单独占用一行,不能将两条命令写在同一行中。
如果没有转移语句, BAT 文件将顺序执行每一条语句。
三、BAT 常用命令详解1、ECHO 和@作用显示或隐藏命令在屏幕上的显示或在屏幕上显示文本信息。
使用方法 ECHO ON | OFF 使批处理中的命令在屏幕上显示或不显示 @ 使命令本身不在屏幕上显示例 @echo off ( 使批处理中的命令在屏幕不显示,包括该语句本身 )例 echo 这句话将显示在屏幕上2、REM作用给命令加上注释,使一句语句失去作用使用方法 REM [ 注释语句 ]例:REM DEL*.* ( 不执行删除命令 )3、PAUSE作用暂停命令的执行,主要用于BAT 的调试阶段。
暂停时可按ctrl+break 或ctrl+c 来停止 BAT 的执行。
使用方法 PAUSE例 PAUSE [ 文本信息 ] (暂停并显示文本信息)4 、%0-%9 批处理参数作用代替命令中的参数使用方法 < 命令名 > [ 批处理参数 1] [ 批处理参数 2] ···例有批处理文件名为go.bat ,清单如下@echo offecho this is a demo batcd %1当键入文件名及参数c:\ 时如: go c:\则效果等同于 cd c:\5、SHIFT作用更新批处理参数所代替的命令参数,每运行一次,命令参数前移一位。
批处理文件教程第一章.理解批处理批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。
它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开场执行,直到最后一行完毕,它运行的平台是DOS。
批处理有一个很鲜明的特点:使用方便、灵敏,功能强大,自动化程度高。
我不想让自己写的教程枯燥无味,因为牵缠到代码〔批处理的内容算是代码吧?〕的问题本来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。
所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理〔晕,怎么又是爱?到底批处理和爱有什么关系?答案:没有!〕。
再说句“闲话〞:要学好批处理,DOS根底一定要牢!当然脑子灵敏也是很重要的一方面。
第二章.批处理概述:一个批处理文件只不过是一些DOS命令的组合。
它是执行一系列常用命令非常有用的方法。
除了标准的DOS命令之外,批处理文件可以包括一系列特殊的命令,这些命令允许你用一些可交换的参数编写简单程序。
启动批处理文件后,可交换参数,也就是0到9之间的一个整数前面加上一个%符号,将被你在命令行键入的自变量所置换。
其中最普遍使用的文件是AUTOEXEC.BAT文件,无论什么时候启动或重启动系统,DOS都将自动执行它。
此文件允许你做如下事情:输入当前日期、设置命令途径与系统提示符及装载程序,而不需分别键入每个命令。
AUTOEXEC.BAT文件必须位于启动DOS盘的根目录下。
所有批处理文件必须以.BAT作为扩展名,不过当你运行该文件时并不需要在命令行键入扩展名。
要执行批处理文件,只需简单地在系统提示符下键入其文件名即可,DOS将按顺序执行批处理文件所包含的命令。
第三章.批处理的入门学习批处理!包你学会〔一〕这是一篇技术教程,真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识。
批处理详解一:批处理是什么批处理是什么?我们学习批处理,先弄懂这个问题,个人认为第一批处理是一个文本文件,可以使用任何一种文本编辑器编写,正是基于这个特点有时候我们不想让别人看到我们书写的代码而使用bat2com和bat2exe将其转换成exe文件,第二批处理是一种解释性程序,它的功能类似于意念,说强很强说弱又很弱,说它是一种程序更重要的是它和其他编程语言一样有自己的控制结构!而且这个程序有个特点就是解释执行即逐行逐句的翻译执行,这个特点我们在后面还会提到!第三任何批处理都是一个DOS的外部命令,这使得我们在编写批处理的时候可以使用参数,这里的参数不是指DOS命令的命令参数,后面的内容会做解释!学习批处理第一个需要解决的问题就是特殊符号!二:批处理中的特殊符号学会批处理中的特殊符号对于我们学习编写批处理是非常有用的!这里我做了一下简单的整理——:、::、&、&&、>、>>、|、||、nul、con、%、(),成对出现的东西是非常容易记忆的,下面我们结合具体的操作仔细的理解!1:“:”与“::”“::”与rem命令是一样效果,起解释说明的作用,和C++中的/……/一样!“:”符号的作用是标记一个标签与goto语句一起使用,其格式为: label,这点与C或C++中的goto语句是截然相反的,在C或者C++中的格式为label:!举例说明:@echo off::标签的使用与goto语句goto test:testecho goto语句test当然goto语句的跳转是有条件,在后面的批处理结构中你会发现goto语句的魅力,这里只是为了更好的理解上面的两个特殊符号!2:“&”与“&&”“&”与“&&”符号的作用是连接两个命令同时执行,区别在于前者不管第一条命令的执行是否成功,都会执行第二条命令,而后者只有在第一条命令执行成功以后才执行后面的命令!例子我们在学完第三组命令“|”与“||”在举!3:“|”与“||”“|”符号的作用是将|前执行的命令结果作为其后DOS命令的参数,比如dir|find "2008",dir 命令查看当前目录的文件,然后所有目录的列表作为find "2008"的参数,也就是从该文件目录下查找所有2008年建立的文件!“||”符号的作用与“|”是截然不同的,它也是连接两个命令同时执行,不过是第一条命令执行错误的条件下才会执行第二条命令!编写如下代码,保存为checkuser.bat:@echo offset a=set/p a=请输入要查找的用户名net user %a% >nul 2>nul && echo 存在该用户|| echo 用户不存在.这是Visual bat程序安装目录中非常经典的一个批处理,它的作用是检查用户输入的帐户是否存在,当用户输入账户后,比如hacker,然后执行net user hacker,如果是存在该帐户也就是说命令执行成功了,那么就显示存在该用户,如果不存在该帐户也就是net user hacker命令没执行成功,就显示用户不存在,结合上面的内容我想您已经理解“||”“&&”“&”三者的微妙之处了!4:“nul”和“con”在checkuser.bat中,我们看到>nul 2>nul的句子,前者是当命令执行成功后不显示回显,比如net user hacker /ad >nul这样用户添加成功后也不会有提示,后者是命令执行错误后不显示回显,两者同时使用的结果就是不论命令执行是否成功,都不显示任何信息!对于“nul”这个特殊符号我们可以理解为空字符的意思,除了不显示回显,还可以使用它删除文件,copy nul >1.txt或者type nul>1.txt,这种删除方式是比较安全的,我想当初李开复如果使用这种方法删除文件,也许就不会招来因为跳槽而导致的官司!对于“con”,我们可以简单的理解为屏幕,在cmd下我们输入:copy *.txt con,可以连续打开多个txt文件以方便我们查看!5:“>”与“>>”“>”它的作用是创建一个文件比如echo hacking >1.txt,而“>>”的作用是将内容追加到一个文件后面,比如前面1.txt的内容为hacking,在CMD下输入echo hacker>>1.txt,那么1.txt 的内容为hackinghacker!6:“%”与“()”把这两个符号放一起有点牵强,“()”起分隔符的作用,在后面的批处理中你会理解这点,在批处理我们可以理解为存在两个分隔符一是空格另一个是括号,这时候的“()”类似于c或者c++中的语句结束符“;”,很多时候我们还使用它包括多条DOS命令,这时候又有点类似于c 或者c++中的{},起包含语句块的作用!“%”它的作用是表示变量,而且在批处理文件和在命令行下书写格式不一样,在命令行下使用%variables,在批处理中我们使用%%variables或者%variables%(不同命令使用不同格式),对于原因,我想它类似于c或者c++中的“转义”,在编程语言中,为了某些特殊的需要提出了“转义”的概念,顾名思义就是转变符号的原有意思,比如\a是响铃!举个例子来说明%的意思,在C++中我们要在屏幕上输出一个“\”,则应该写做cout<<"\\";,如果要输出两个“\”则应该写成cout<<"\\\";,这个过程有个很好听的名字“脱逸”,%也遵循了这样方法,在后面我们将结合for命令详细的说明!提到“%”号,就不得不说一下参数,所谓参数是在批处理文件(开始说的每个批处理文件是一个外部命令)后所添加的以空格分隔的字符串,它的使用方法是%1-9,参数是针对批处理文件做为一个外部命令来说的,虽然参数和变量不是一个概念,但是它是按变量来处理的,所以有时候我们也就称为变量了!举例说明!@echo offmd %1md %1\天下1md %1\天下2md %1\天下3保存为test.bat我们在CMD下输入:test.bat 天下,执行后会在批处理目录中建立一个名字为“天下”的文件夹而且在该文件夹下会一次建立三个子文件夹,这当我们输入“test.bat 天下”的时候“天下”就作为参数传递给了%1,即%1=天下!另外%variables%的作用是引用环境变量!环境变量可以简单理解为系统已经设置好的系统变量比如%systemroot$是c:\windows,%compsec%代表的是c:\windows\system32\cmd.exe,对于系统设置好的环境变量我们可以在CMD下输入set查询,当然我们也可以使用set命令设置环境变量!下面我们看批处理中的控制结构!三:批处理中控制结构批处理中有四种控制结构:if结构、goto结构、for循环结构、call结构!,对于call和goto 结构应该算是以类,主要是因为它们都具有跳转功能,让很多小批处理转化成大批处理,有点结构化程序设计的味道!call命令的作用是调用其他的批处理文件,比如:call test.bat,而goto语句在文章开始我们就做了解释,所以我们主要说的就是if结构与for循环结构,首先我们先理解条件这个词的意思,把世界看成一个连锁体系,每一个事情的前一个事情就是该事情的条件,举个简单的例子,我们坐公交车前需要有1元的零钱,这里1元的零钱就是我们坐车的一个条件,当然在批处理或者程序中就不能那么的表达,在C++中条件其实只有两种:一种靠关系运算符实现,一种靠逻辑运算符实现,批处理中也遵循了这样的规则,当然在批处理使用最多条件还是靠“=”来实现!(一)if结构在CMD下输入if /?,我们会发现if有三种结构,我们先看这三种结构!1:IF [NOT] exist filename command这应该是最简单的一种IF结构,例如if exsit c:\1.txt type 1.txt、if not exsit c:\1.txt echo xxx>c:\1.txt!2:IF [NOT] ERRORLEVEL number command对于number,在DOS时代这个东西有N多比如1、2、3等等而且每个数字都有不同的意义,并且多个number排列时还有规则,在Windows中其实我们只要注意0和1就可以了!0代表的是程序执行成功,1代表的是程序执行失败!我们可以简单将errorlevel理解为一个变量!所以这个命令还可以这样书写:IF [NOT] %ERRORLEVEL%==number command我们举个简单的例子:net user hacker 123 /adif %errorlevel%==0 echo 添加帐户成功上面的内容我们还可以这样写:net user hacker 123 /adif not %errorlevel%==1 echo 添加帐户成功这两种表达看似等效,其实并不等效,第一个是只有用户添加成功的时候才显示添加帐户,而第二种的意思是不管添加成功还是本机已经存在该帐户,都会显示添加帐户成功,它们之间存在细微的差别!not相当于一个修饰,大家要善于分析条件!3:IF [NOT] string1==string2 command这种if结构也是非常有用的,这里首先需要注意等号是两个,其次注意引号并不是必须的,我们可以不加引号,加引号只是为了防止空字符!举例说明,以前很多文章中都涉及到cmd加密器的问题,就是让用户在运行cmd的时候,首先输入密码!网上有更复杂的,其实批处理学到这里我们就可以写出一个比较简单的cmd 加密程序!@echo offset /p %%a=请输入密码if %%a==hacker goto test:testecho 密码正确,登陆成功start %comspec%3:if……else结构在运行上面的批处理过程中,你会发现我们输入任何字符都可以运行cmd!编辑如下代码就不会出现上面的问题了!@echo offset /p %%a=请输入密码if %%a==hacker (goto test) else goto error:testecho 密码正确,登陆成功start %comspec%:errorecho 密码错误这里我们不讨论为什么会出现这样的错误,我们看在批处理中if……else结构的具体使用!在文章开始我们提到批处理是逐行逐句解释执行的,所以我们在用到if……else语句时,最好直接写到一行,写到一行我们需要注意,将if后面的命令,简称if子句,用括号括起来就好了,我想原因也许还是逐行逐句解释执行的,这里的()起的作用和空格一样就是分隔作用(上面提到过),一句话if……else语句,在批处理需要放到一行,并且if子句需要用括号括起来!5:/i开关if结构语句中有一个开关/i,使用该开关,在执行字符串比较的时候不会区分大小写!而且还可以使用如下运算符:EQU - 等于NEQ - 不等于LSS - 小于LEQ - 小于或等于GTR - 大于GEQ - 大于或等于书写如下代码:if /I %time% LEQ 06:00:00.00 goto g1if /I %time% LEQ 12:00:00.00 goto g2if /I %time% LEQ 18:00:00.00 goto g3if /I %time% LEQ 24:00:00.00 goto g4:g1net user administrator 123 && goto endg2:net user administrator 456 && goto endg3:net user administrator 789 && goto endg4:net user administrator 023 && goto end:endecho OK %time% 密码修改成功,下次登陆请注意这段代码的意思是根据当前系统时间自动修改计算机登陆密码!结合上面的解释,应该很容易明白,所以这里不在做说明!下面说批处理的精华所在for循环结构!(二):for循环结构1:for variable in (Set) do command (command-paremts)循环的意思是一次次的重复操作,至于操作什么,如何操作,操作多少次,我们都需要运用命令去自己设定!CMD下的for循环基本结构:for variable in (Set) do command (command-paremts)对于上面的结构首先我们先明确批处理中的for循环结构有三个关键字——for、in、do,这是使用for循环结构必不可少的!对于变量我们需要注意在批处理文件中遵循%%即双百分号,在cmd中一般使用%即单百分号,而且在for循环中变量只有52个,(a-z A-Z)可用,对于set的理解就多了,是一个很模糊的概念,可以是一个循环条件,也可以是一个文件、一个目录,command不仅可以是一堆DOS命令,还可以是一个批处理文件,所以后面才可以添加command-paremts!比如for %i in (*.bat *.txt) do del %%i, 这条语句是指,在当前目录下搜索所有BAT和TXT 文件,并逐个将搜索到的文件名存入变量%%i中,每搜索到一个,就执行del命令删除%%i 变量中指定的文件。
bat批处理教程批处理是一种在Windows操作系统中执行一系列命令的脚本语言。
它可以自动化执行一些重复性的任务,帮助提高工作效率。
在本篇教程中,我们将介绍批处理的基本语法和常用命令,并给出一些示例以便读者更好地理解。
首先,我们需要了解一些批处理的基本语法。
一个批处理文件通常以`.bat`或`.cmd`的扩展名结尾,并且可以使用任何文本编辑器进行编写。
批处理文件由一系列命令组成,每个命令占据一行。
命令的执行顺序是从文件的第一行到最后一行,因此需要注意命令的先后顺序。
接下来,让我们介绍一些常用的批处理命令。
首先是`echo`命令,它用于在屏幕上显示一条消息。
例如,`echo HelloWorld!`将在屏幕上显示"Hello World!"。
可以使用`>`操作符将输出重定向到文件中,例如`echo Hello World! > output.txt`将输出保存到名为"output.txt"的文件中。
另一个常用的命令是`cd`命令,它用于改变当前目录。
例如,`cd C:\Users`将切换到"C:\Users"目录下。
可以使用`..`来返回上一级目录,例如`cd ..`将返回上一级目录。
`dir`命令用于列出当前目录下的文件和子目录。
例如,`dir`将列出当前目录下的所有文件和子目录的名称。
`pause`命令用于暂停批处理的执行并等待用户按下任意键。
这在需要确认某个操作时非常有用。
`if`命令用于根据条件执行不同的命令。
例如,使用`if exist filename.txt echo File exists`命令可以检查是否存在名为"filename.txt"的文件,如果存在则显示"File exists"。
使用`for`命令可以对一组文件或目录进行批处理操作。
例如,`for %%F in (*.txt) do echo %%~nF`将显示所有以".txt"结尾的文件的文件名。
教你认识批处理一(教程)一.简单批处理内部命令简介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 noparmsif {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。
)@Rem check parameters if null show usage:noparmsecho Usage: monitor.bat ServerIP PortNumbergoto end标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里。
最好有一些说明这样你别人看起来才会理解你的意图啊。
4.Rem 命令注释命令,在C语言中相当与,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。
Rem MessageSample:@Rem Here is the description.5.Pause 命令运行Pause 命令时,将显示下面的消息:Press any key to continue . . .Sample:@echo offcopy a:*.* d:\backecho Please put a new disk into driver Apausegoto begin在这个例子中,驱动器A 中磁盘上的所有文件均复制到d:\back中。
显示的注释提示您将另一张磁盘放入驱动器A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。
6.Call 命令从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。
call 命令接受用作调用目标的标签。
如果在脚本或批处理文件外使用Call,它将不会在命令行起作用。
语法call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]参数[Drive:}[Path] FileName指定要调用的批处理程序的位置和名称。
filename 参数必须具有.bat 或 .cmd 扩展名。
7.start 命令调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
入侵常用参数:MIN 开始时窗口最小化SEPARATE 在分开的空间内开始16 位Windows 程序HIGH 在HIGH 优先级类别开始应用程序REALTIME 在REALTIME 优先级类别开始应用程序WAIT 启动应用程序并等候它结束parameters 这些为传送到命令/程序的参数执行的应用程序是32-位GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。
如果在命令脚本内执行,该新行为则不会发生。
8.choice 命令choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。
使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。
它的返回码为1234……如: choice /c:dme defrag,mem,end将显示defrag,mem,end[D,M,E]?Sample:Sample.bat的内容如下:@echo offchoice /c:dme defrag,mem,endif errorlevel 3 goto defrag (应先判断数值最高的错误码)if errorlevel 2 goto memif errotlevel 1 goto end:defragc:\dos\defrag:memmemgoto end:endecho good bye此文件运行后,将显示defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。
9.If 命令if 表示将判断是否符合规定的条件,从而决定执行不同的命令。
有三种格式:1、if "参数" == "字符串" 待执行的命令参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。
(注意是两个等号)如if "%1"=="a" format a:if {%1}=={} goto noparmsif {%2}=={} goto noparms2、if exist 文件名待执行的命令如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如if exist config.sys edit config.sys3、if errorlevel / if not errorlevel 数字待执行的命令如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。
如if errorlevel 2 goto x2DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回码为0、1。
10.for 命令for 命令是一个比较复杂的命令,主要用于参数在指定的范围内循环执行命令。
在批处理文件中使用FOR 命令时,指定变量请使用%%variablefor{%variable|%%variable} in (set) do command [ CommandLineOptions]%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。
可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters 为特定命令指定参数或命令行开关。
在批处理文件中使用FOR 命令时,指定变量请使用%%variable而不要用%variable。
变量名称是区分大小写的,所以%i 不同于%I如果命令扩展名被启用,下列额外的FOR 命令格式会受到支持:FOR /D %variable IN (set) DO command [command-parameters]如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。
FOR /R [[drive:]path] %variable IN (set) DO command [command-检查以[drive:]path 为根的目录树,指向每个目录中的FOR 语句。
如果在/R 后没有指定目录,则使用当前目录。
如果集仅为一个单点(.)字符,则枚举该目录树。
FOR /L %variable IN(start,step,end) DO command [command-para该集表示以增量形式从开始到结束的一个数字序列。
因此,(1,1,5) 将产生序列1 2 3 4 5,(5,-1,1) 将产生序列(5 4 3 2 1)。
FOR /F ["options"] %variable IN (file-set) DO commandFOR /F ["options"] %variable IN ("string") DO commandFOR /F ["options"] %variable IN ('command') DO command或者,如果有usebackq选项:FOR /F ["options"] %variable IN (file-set) DO commandFOR /F ["options"] %variable IN ("string") DO commandFOR /F ["options"] %variable IN ('command') DO commandfilenameset 为一个或多个文件名。
继续到filenameset 中的下一个文件之前,每份文件都已被打开、读取并经过处理。
处理包括读取文件,将其分成一行行的文字,然后将每行解析成零或更多的符号。
然后用已找到的符号字符串变量值调用For 循环。
以默认方式,/F 通过每个文件的每一行中分开的第一个空白符号。
跳过空白行。
您可通过指定可选"options"参数替代默认解析操作。
这个带引号的字符串包括一个或多个指定不同解析选项的关键字。
这些关键字为:eol=c - 指一个行注释字符的结尾(就一个)skip=n - 指在文件开始时忽略的行数。
delims=xxx - 指分隔符集。
这个替换了空格和跳格键的默认分隔符集。
tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代的for 本身。
这会导致额外变量名称的格式为一个范围。
通过nth 符号指定m符号字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之分配并接受行的保留文本。
usebackq - 指定新语法已在下类情况中使用:在作为命令执行一个后引号的字符串并且引号字符为文字字符串命令并允许在fi中使用双引号扩起文件名称。
sample1:FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do command会分析myfile.txt 中的每一行,忽略以分号打头的那些行,将每行中的第二个和第三个符号传递给for 程序体;用逗号和/或空格定界符号。