c语⾔创建⼀个bat⽂件内容,BAT(批处理)⽂件编写详细⼿册《BAT(批处理)⽂件编写详细⼿册》由会员分享,可在线阅读,更多相关《BAT(批处理)⽂件编写详细⼿册(41页珍藏版)》请在⼈⼈⽂库⽹上搜索。
1、BAT(批处理)⽂件编写详细⼿册⼀、 批处理⽂件简介⾸先,批处理⽂件是⼀个⽂本⽂件,这个⽂件的每⼀⾏都是⼀条DOS命令(⼤部分时候就好象我们在DOS提⽰符下执⾏的命令⾏⼀样),你可以使⽤DOS下的Edit或者Windows的记事本(notepad)等任何⽂本⽂件编辑⼯具创建和修改批处理⽂件。 其次,批处理⽂件是⼀种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运⾏的流程,在批处理中也可以使⽤循环语句 (for)来循环执⾏⼀条命令。当然,批处理⽂件的编程能⼒与C语⾔等编程语句⽐起来是⼗分有限的,也是⼗分不规范的。批处理的程序语句就是⼀条条的 DOS命令(包括内部命令和外。
2、部命令),⽽批处理的能⼒主要取决于你所使⽤的命令。 第三,每个编写好的批处理⽂件都相当于⼀个DOS的外部命令,你可以把它所在的⽬录放到你的DOS搜索路径(path)中来使得它可以在任意位置运 ⾏。⼀个良好的习惯是在硬盘上建⽴⼀个bat或者batch ⽬录(例如C:/BATCH),然后将所有你编写的批处理⽂件放到该⽬录中,这样只要在path中设置上c:/batch,你就可以在任意位置运⾏所有你 编写的批处理程序。 简单的说,批处理的作⽤就是⾃动的连续执⾏多条命令。⼆、 批处理中常⽤命令:1. echo命令:表⽰显⽰此命令后的字符。字符不需要使⽤引号。其中,%和两个字符不能显⽰。2. Echo o。
3、ff命令:表⽰在此语句后所有运⾏的命令都不显⽰命令⾏本⾝。即关闭echo回显功能。可以使⽤echo on打开。3. 命令:它是加在每个命令⾏的最前⾯,表⽰运⾏时不显⽰这⼀⾏的命令⾏(只能影响当前⾏)。4. call命令:调⽤另⼀个批处理⽂件(如果不⽤call⽽直接调⽤别的批处理⽂件,那么执⾏完那个批处理⽂件后将⽆法返回当前⽂件并执⾏当前⽂件的后续命令)。5. pause命令:运⾏此句会暂停批处理的执⾏并在屏幕上显⽰Press any key to continue.的提⽰,等待⽤户按任意键后继续。如果不想显⽰以上英⽂提⽰信息,可以这样写:pausenull6. rem命令:表⽰此命令后的字符为。
4、解释⾏(注释),不执⾏,只是给⾃⼰今后参考⽤的(相当于程序中的注释)。7. :命令:与rem命令等效。例1:⽤edit编辑a.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。
5、 ucdos /进⼊ucdos⽬录 wps /运⾏wps 三、 批处理⽂件的参数:批处理⽂件还可以像C语⾔的函数⼀样使⽤参数(相当于DOS命令的命令⾏参数),这需要⽤到⼀个参数表⽰符%。%1-9表⽰参数,参数是指在运⾏批处理⽂件时在⽂件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表⽰批处理命令本⾝,其它参数字符串⽤%1到%9顺序表⽰。例2:C:根⽬录下有⼀批处理⽂件名为f.b
at,内容为:echo offformat %1如果执⾏C:/f a:那么在执⾏f.bat时,%1就表⽰a:,这样format %1就相当于format a:,于是上⾯的命令运⾏时实际执⾏的是for。
6、mat a:例3:C:根⽬录下⼀批处理⽂件名为t.bat,内容为:echo offtype %1type %2那么运⾏C:/ b.txt%1 : 表⽰a.txt%2 : 表⽰
<于是上⾯的命令将顺序地显⽰a.txt和b.txt⽂件的内容。%0 这个不是返回参数的值了,他有两层意思!第⼀层意思:返回批处理所在绝对路径例⼦:echo offecho %0pause保存为test.BAT放在桌⾯运⾏,会显⽰如下结果C:Documents and SettingsAdministrator桌⾯test.bat 他把当前批处理执⾏的所在路经打印出来了,这就是返回批处理所在绝对路径的意思。
7、第⼆层意思:⽆限循环执⾏BAT例⼦:echo offnet user%0保存为BAT执⾏,他就会⽆限循环执⾏net user这条命令,直到你⼿动停⽌.%*参数:返回参数,不过他是⼀次返回全部参数,不⽤分别%1,%2等⼀⼀返回。例⼦echo offecho %*同样保存为test.bat 放到C盘进⼊CMD,输⼊cd c:然后输⼊ test.bat 我是第⼀个参数 我是第⼆个参数 我是第三个参数 我是第四个参数可以看到他⼀次把全部参数都显⽰出来了四、⾃定义变量:⾃定义变量使⽤set命令。如:echo offset var=value /有空格的字符串也不需要引号。echo %var%pause。
8、其中var就是⾃定义的变量。五、 特殊命令(⼀) if命令if 是条件语句,⽤来判断是否符合规定的条件,
从⽽决定执⾏不同的命令。 有三种格式:1. if not 参数 = 字符串 待执⾏的命令 /注意:为了防⽌参数为空的情况,⼀般会将参数与字符串⽤双引号(或者其它符号,注意不能使⽤保留符号)括起来。 如:if %1=A 或者 if %1*=A*,这⾥*不是通配符。是要保证等号两边的字符⼀致。参数如果等于(not表⽰不等,下同)指定的字符串,则条件成⽴,运⾏命令,否则运⾏下⼀句。例:if %1=a format a:2. if not exist 路径/⽂件名 待执⾏的命令如果有指定的⽂件,则条。
9、件成⽴,运⾏命令,否则运⾏下⼀句。如: if exist c:/config.sys type c:/config.sys /表⽰如果存在c:/config.sys⽂件,则显⽰它的内容。3. if errorlevel 待执⾏的命令很多DOS程序在运⾏结束后会返回⼀个数字值⽤来表⽰程序运⾏的结果(或者状态),通过if errorlevel 命令可以判断程序的返回值,根据不同的返回值来决定执⾏不同的命令(返回值必须按照从⼤到⼩的顺序排列)。如果返回值等于指定的数字,则条件成⽴,运⾏命令,否则运⾏下⼀句。IFERRORLEVEL是⽤来测试它的上⼀个DOS命令的返回值的,注意只是上⼀个命令的返回值,。
10、⽽且返回值必须依照从⼤到⼩次序顺序判断。如下的例⼦,先判断返回值为1的,再判断返回值为0的。IFERRORLEVEL1ECHO⽂件拷贝失败 IFERRORLEVEL0ECHO成功拷贝⽂件如if errorlevel 2 goto x24. if number ⽐较符 value commandEQU 等于NEQ 不等于LSS ⼩于LEQ ⼩于或等于GTR ⼤于GEQ ⼤于或等于5. if defined test command /如果定了了变量test,则执⾏command。如:if defined test echo It is defined.6. if 条件1 (command1) e。
11、lse (command2) /条件1后的命令⾏必须有括号。在if后,若要执⾏多条命令,可以将这些命令放在⼀对括号中,且左括号必须跟if关键字在同⼀⾏,如:cd /d :/slfslfsl if errorlevel 1 (mkdir d:error mkdir d:1 mkdir d:2)(⼆) goto命令批处理⽂件运⾏到这⾥将跳到goto所指定的标号(标号即label,标号⽤:后跟标准字符串来定义)处,goto语句⼀般与if配合使⽤,根据不同的条件来执⾏不同的命令组。如: goto end :end echo this is the end 标号⽤:字符串来定义,标号所在⾏不被执⾏。在有。
批处理文件注释12、多个标号时,每个标号都要有goto语句跳出,否则各个标号程序会连续执⾏。 注意: (1) 标号前是ASCII字符的冒号:,冒号与标号之间不能有空格。 (2) 标号的命名规则与⽂件名的命名规则相同。 (3) DOS⽀持最长⼋位字符的标号,当⽆法区别两个标号时,将跳转⾄最近的⼀个标号。(三) choice命令使⽤此命令可以让⽤户输⼊⼀个字符(⽤于选择),从⽽根据⽤户的选择返回不同的errorlevel,然后于if errorlevel配合,根据⽤户的选择运⾏不同的命令。注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请⽤choice /。
13、?查看⽤法。choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此⼤同⼩异):CHOICE /C choices /N /CS /T timeout /D choice /M text 描述: 该⼯具允许⽤户从选择列表选择⼀个项⽬并返回所选项⽬的索引。 参数列表: /C choices 指定要创建的选项列表。默认列表是 YN。 /即定义可选择项/N 在提⽰符中隐藏选项列表。提⽰前⾯的消息得到显⽰,选项依旧处于启⽤状态。 /即Y,N,C?列表将隐藏,但提⽰⽤户选择的信息将正常显⽰。另外,/N必须⽤于/
M参数之前。/CS 允许选择分。
14、⼤⼩写的选项。在默认情况下,这个⼯具是不分⼤⼩写的。 /T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0 到9999。如果指定了 0,就不会有暂停,默认选项 会得到选择。 /D choice在 nnnn 秒之后指定默认选项。字符必须在⽤ /C 选项指定的⼀组选择中; 同时,必须⽤ /T 指定 nnnn。 /M text指定提⽰之前要显⽰的消息。如果没有指定,⼯具只显⽰提⽰。 /?显⽰帮助消息。 注意: ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第⼀个选择返回 1,第⼆个选择返回 2,等等。如果⽤户按的键不是有效的选择,该⼯具会发出警告响声。如果该⼯。
15、具检测到错误状态,它会返回 255 的ERRORLEVEL 值。如果⽤户按 Ctrl+Break 或 Ctrl+C 键,该⼯具会返回 0 的ERRORLEVEL 值。在⼀个批程序中使⽤ ERRORLEVEL 参数时,将参数降序排列。 ⽰例: CHOICE /? CHOICE /C YNC /M 确认请按Y,否请按 N,或者取消请按 C。 CHOICE /T 10 /C ync /CS /D y CHOICE /C ab /M 选项 1 请选择 a,选项 2 请选择 b。 CHOICE /C ab /N /M 选项 1 请选择 a,选项 2 请选择 b。 如果我运⾏命令:CHOICE /C 。
16、YNC /M 确认请按 Y,否请按 N,或者取消请按 C。 屏幕上会显⽰: 确认请按 Y,否请按 N,或者取消请按 C。 Y,N,C? 例:test.bat的内容如下(注意,⽤if errorlevel判断返回值时,要按返回值从⾼到低排列): echo off choice /C dme /M defrag,mem,end if errorlevel 3 goto end if errorlevel 2 goto mem if errotlevel 1 goto defrag :defrag c:/dos/defrag goto end :mem mem goto end :end echo 。
17、good bye 注:如果在bat⽂件中出现外部程序,需要知道绝对路径,并需要⽤引号。如:“C:Program Files (x86)”此批处理运⾏后,将显⽰defrag,mem,endD,M,E? ,⽤户可选择d m e ,然后if语句根据⽤户的选择作出判断,d表⽰执⾏标号为defrag的程序段,m表⽰执⾏标号为mem的程序段,e表⽰执⾏标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显⽰good bye,批处理运⾏结束。 (四) for命令:(参考http:/wwwblog。
18、s/focusHr/archive/2009/02/05/1384751.html)对⼀个或⼀组⽂件,字符串或命令结果中的每⼀个对象执⾏特定命令,达到我们想要的结果。注意:在批处理⽂件中使⽤FOR命令时,指定变量请使⽤%variable,⽽不要⽤%variable。变量名称是区分⼤⼩写的,所以%i不同于%I。语法:FOR参数%变量名IN(相关⽂件或命令)DO执⾏的命令for命令可以带参数或不带参数,带参数时⽀持以下参
数:/d/l/r/f语法: 1. 不带参数:FOR %variable IN (set) DO command command-parameters %variable指定⼀个单⼀字母可替换的参数。 (set)指定⼀个或⼀组⽂件。可以使⽤通配符。 /不带参数时,只指⽂件。command指定对每个⽂件执⾏的命令。 comma* 次数:1357533 已⽤完,请联系开发者。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。