《Windows批处理文件(.bat和.cmd)使用帮助.docx》由会员分享,可在线阅读,更多相关《Windows批处理文件(.bat和.cmd)使用帮助.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、cmd文件和bat文件有什么区别本质上没有区别,都是简单的文本编码方式,都可以用记事本创建、编辑和查看。两者所用的命令行代码也是共用的,只是cmd文件中允许使用的命令要比bat文件多。cmd文件只有在windows 2000以上的系统中才能运行,而bat文件则没有这个限制。从它们的文件描述中也可以看出以上的区别:cmd文件的描述是“windows nt命令脚本”, bat文件的描述是“ms dos批处理文件”。cmd是Win32命令,只能在32位系统中的命令行窗口中使用,仅仅是基于windows环境下 的假DOS,bat是DOS命令,在任何dos环境下都可以使用。批处理文件是一种没有什么固定格
2、式的文件,它可以处理一条或者多条命令,文件的扩展名 是:.cmd或者.bat,文本里面的每一行就是一条处理指令,双击运行它的时候,Windows就 会调用cmd.exe去运行它。指令指令:6(0和echo off通常我们将这条指令写在批处理文件的第一行。有了这条指令之后,当我们在 运行批处理文件(.cmd或者.bat)的时候,就不会将文件里面的内容打印出来了,如果没有 这句话,会先去将文件里面的内容打印在屏幕上。echo off这条指令之后的内容不会被打印,但是这个指令会被打印。某一条指令不想被打印,可以在前面加上echo.或echo:换行,即回车。打印:echo使用echo命令将设置的变量进
3、行回显,即打印。例如:echo %a%赋值:set注意等号左边不能有空格,等号右边的空格会被当做字符串的一部分。例如:set a=l注释:REM和:rem和:都起到注释的作用,然而又有些不同。rem和REM一样。当echo处于关闭状态,rem和:注释的语句都不会被打印出来。当echo处于打开状态,rem注释的语句会被打印出来,而使用:注释的语言也不会打印出来。 例如:REM I amd testing:Who are you?标题:title批处理title命令用于设置控制台窗口中显示的标题。例如echo offtitle new windows title执行后:- 0 .畀员windows
4、 title p:tempeclipse-workspacetestsrctest. cmd p:tempeclipse-workspacetestsrcj暂停:PAUSE当我们需要在文件运行的中间让其暂停一下,在控制台就会显示:“请按任意键以继续”。 例如:echo offpause执行后:D:tempeclipse-workspacetestsrctest. cmd 请按任意键继续启动:start作用:启动一个单独的窗口以运行指定的程序或命令。当我们在cmd窗口输入:help start之后,然后回车,可以查看帮助信息。Windows批处理文件(卜alled|.batcallec7cm::
5、i )可以通过多种方式从另一批处理文件(|caller .bat 或callerQcmd或交互式|cmd?exe 提示中 |cal.ler|7| QI直接呼叫:|called|.bat|使用 call 命令: callcalled|.bat|使用cmci 命令:cmd| /c lealled|.bat使用启动命令:start called|.bat|指令:call如果你想在某一批处理程序中调用另外一个批处理文件,就是用call指令。|call |tempj.bat延时:timeout延时一定时间执行后面的命令,延时的单位是秒。在延时的时候,可以按一个键继续(即不 继续延时)。例如,批处理文件中
6、的内容:lecho off2echo heLLo worLd3timeout 104echo gooc执行批处理文件(延时过程中):D:tempeclipse-workspacetestsrctest.emd hello world等待8秒,按一个键继续执行批处理文件(延时完成后):D:tempeclipse-workspacetestsrctest.emd hello world等待0秒,按一个键继续. .goodgoto命令指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。语法:goto label (label是参数,指定所要转向的批处理程序中的行。)Sample :if %1=
7、 goto noparmsif %2= goto noparms (如果这里的if、1、2你不明白的话,先跳过去,后面会有详细的解释。)Rem check parameters if null show usage:noparmsecho Usage : monitor.bat ServerIP PortNumbergoto end标签的名字可以随便起,但是最好是有意义的字母。字母前加个:用来表示这个字母是标签, goto命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才 会理解你的意图。If命令if表示将判断是否符合规定的条件,从而决定执行不同的命令。有三种格式:(1
8、)if “参数”=字符串” 待执行的命令参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)如 if %1 = a format a:if %1= goto noparmsif %2= goto noparms(2) if exist文件名待执行的命令如果有指定的文件,则条件成立,运行命令,否则运行下一句。如 if exist config.sys edit config.sys(3) if errorlevel / if not errorlevel 数字,待执行的命令如果返回码等于指定的数字,则条件成立,运行命令,否则运行卜.一句。如 if errorleve
9、l 2 goto x2DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回 码为0、lofor命令for命令是一个比较复:杂的命令,主要用于参数在指定的范围内循环执行命令。在批处理文件中使用FOR命令时,指定变量请使用%variable而不要用%variableo变量 名称是区分大小写的,所以%i不同于%1for %variable|%variable in (set) do command CommandLineOptions%variable指定一个单一字母可替换的参数。(set)指定一个或一组文件。可以使用通配符。command指定对每个文件执行
10、的命令。command-parameters为特定命令指定参数或命令行开关。批处理命令中的参数、变量1.%0-9:是指去包含引号的命令行参数、%*接收所有参 数(可以无限多个,不只接收前九个参数)例如:在C:Xemo.bat argl arg2”命令中,argl是传递给demo.bat的第一个参数,arg2 是传递给demo.bat的第二个参数。我们知道,*是用来指批处理文件传入的参数。例如0表示命令本身,%1表示传入的 第一个参数,以此类推。 %0代表批处理文件自身(例如上例中的demo.bat) %1接收传递给批处理文件的第一个参数,%2接收第二个参数.9接收第九个参数 %9后面的变量(例
11、如:%10)是无效的 %*接收所有参数(可以无限多个,不只接收前九个参数;但不包含0,即命令本身) %0-%9、%*用于批处理文件,在DOS命令行环境使用则无效 %0-%9能被扩充,但是*不能被扩充123456789101112131415i234567891011121314示例:demo.batecho offecho first arg: %Q echo fi rst arg: %1 echo second arg: %2 echo third arg: %3 echo four arg: %4 echo five arg: %5 echo six arg: %6 echo seven
12、arg: %7 echo eight arg: %8 echo nine arg: %9 :%10被解析为%1和。 echo error arg: %10 echo all arg: %*运行C:demo.bat arg0 argl arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 batch file self: demo.bat first arg: arg0 second arg: argl third arg: arg2 four arg: arg3 five arg: arg4 six arg: arg5 seven arg: arg6 eight ar
13、g: arg7 nine arg: arg8 error arg: arg00 / 凫1 是arg0,故这里为arg。 all arg: arg0 argl arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 C:2. %(f|d|p|n|x|s|a|t|z|$PATH)*09总体介绍开发一个批处理命令,有时候需要知道这个命令的路径、传入参数的路径等这些与路径相关 的信息。一般的编程语言会提供一些类库或者API来完成与路径相关的任务,例如.NET中提 供了 File类、Directory类和Path类来做这些事情。在批处理文件中,使用*来完成与路径 相关的任务,语法
14、规则可以表示如下:%(f|d|p|n|x|s|a|t|z|$PATH)*0-9309:是指去除了引号的命令行参数先假定在F:TempBatch目录下有一个test.bat批处理文件,执行的批处理命令行是: F:TempBatchtest u C:Program Filesstudying.txt”%0指命令行本身,木例为Batchtest%1 指第,个参数,本例为 C:Program Filesstudying.txt注:%1也指第一个参数,本例却为C:Program Filesstudying.txt”,这里是有引号的。以此类推4.%-f0-9: f-full,指绝对路径名先假定在F:Tem
15、pBatch目录下有一个test.bat批处理文件,执行的批处理命令行是: F:TempBatchtestuC:Program Filesstudying.txtM本例中:f0 - F:TempBatchtest.bat%fl - C:Program Filesstudying.txt5d09: d - driver,指盘符先假定在F:TempBatch目录下有一个test.bat批处理文件,执行的批处理命令行是: F:TempBatchtestuC:Program Filesstudying.txt本例中:d0 - F:%dl - C:6p09: p - path,指不带盘符的目录名先假定在
16、F:TempBatch目录下有一个test.bat批处理文件,执行的批处理命令行是: F:TempBatchtest44C:Program Filesstudying.txtM本例中:pO - TempBatch注:前后都有%pl - Program Files7n09: n - name,指文件的名字,注意不带扩展 名先假定在F:TempBatch目录下有一个test.bat批处理文件,执行的批处理命令行是: F:TempBatchtestu C:Program Filesstudying.txt本例中:%-nO - test %nl - studying8. %*x0-9: x - ext
17、ension,指文件的扩展名先假定在F:TempBatch目录下有一个test.bat批处理文件,执行的批处理命令行是: F:TempBatchtest* C:Program Filesstudying.txtM本例中:x0 - .bat 注:前面有%xl - .txt9s09: s - short,指带有DOS短名字(8字符) 的绝对路径先假定在F:TempBatch目录下有一个test.bat批处理文件,执行的批处理命令行是: F:TempBatchtestuC:Program Filesstudying.txtM本例中:s0 - F:TEMPBATCHtest.bat %sl - C:P
18、ROGRA-lstudying.txt注:这里的目录名全是大写,而文件名全是小写10. %*a0-9: a - attribute,指文件的属性先假定在F:TempBatch目录下有一个test.bat批处理文件,执行的批处理命令行是: F:TempBatchtest44C:Program Filesstudying.txtM本例中:a0 - -a-%al - - a注:这里每一位代表一种文件属性,具体的含义待查11. %-t0-9: t - time,指文件的修改日期,注意不是创 建日期先假定在F:TempBatch目录下有一个test.bat批处理文件,执行的批处理命令行是: F:Temp
19、Batchtest 44C:Program Filesstudying.txt本例中:%-tO - 2011-08-28 11:47%tl - 2011-08-28 10:3012. %-z0-9: z - size,指文件的大小13. %-$PATH:0-9:搜索PATH里面的目录,看是否能够 找到命令行参数指定的文件PATH指系统环境变量的那个PATH。搜索PATH里面的目录,看是否能够找到命令行参数指 定的文件。找到此文件,输出该文件的绝对路径;没有找到此文件,输出空字符串。14. 组合使用:上述的这些字符规则是可以组合起来使用的先假定在F:TempBatch目录下有一个test.bat批处理文件,执行的批处理命令行是: F:TempBatchtestuC:Program Filesstudying.txtM例如,n和x组合表示带扩展名的文件名名字。%nx0 - test.bat%nxl - studying.txt我们可以推测出0表示的意思。d表示盘符,p表示不带盘符的路径,那么dp就表示 带盘符的路径了。在本例中,我们可以得出:%dp0 - F:TempBatch环境变量用两个百分号包起来例如,%LIBREOFFICE PROGRAM%表示环境变量 LIBREOFFICE PROGRAMo