




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DOSBatchFileCommand FormatIntroduction 目录 一 简单批处理命令3二 高级批处理命令11三 批处理参数应用25四 批处理组合命令27五 批处理管道命令31附常用DOS命令汇总35 一 简单批处理命令 返回目录 1 Echo命令打开回显或关闭请求回显功能 或显示消息 如果没有任何参数 echo命令将显示当前回显设置 即当程序运行前加上Echo命令和参数 则显示或隐藏批处理程序中的正文 也可用于允许或禁止命令的回显语法 echo on off message echo表示显示此命令后的字符echooff表示在此语句后所有运行的命令都不显示命令行本身Sample echooffhelloworld Echohelloworld在实际应用中我们会把这条命令和重定向符号 也称为管道符号 一般用 结合来实现输入一些命令到特定格式的文件中 这将在以后的例子中体现出来 Sample echoAudiotestpass TestPASS txt 2 抑制命令回显的符号表示不显示 后面的命令 Sample1 echooff echoNowinitializingtheprogram pleasewaitaminite Sample2 Study1 bat date Time运行Study1 bat并于下面的做比较Study2 batDateTimeStudy3 bat echooffdatetime实际运行结果Study1 bat study3 bat EchoOFF与 区别虽然 与Echooff都可以抑制回应 但使用中两者还是存在区别1 首先 不是一个命令 而是DOS批处理的一个特殊标记符 仅用于屏蔽命令行2 只能抑制其后紧跟的命令或字符显示其有效只能控制一行 如果程序很长 有要求运行时都不能显示出来 则每条命令前都要加上 而Echooff则会控制其后所有批次命令执行时的回应动作 3 Call命令从一个批处理程序中调用另一个批处理程序 而不会引起第一个批处理的中止 语法CALL drive path filename batch parameters 参数 drive path filename指定要调用的批处理程序的名字及其存放处 文件名必须用 BAT作扩展名 Sample Test1 bat echooffEchothisistest1Calltest2 batEchotest1againTest2 bat echooffEcho Thisistest2 执行Test1 bat 结果如下Thisistest1 Thisistest2 Test1again 4 PAUSE暂停批处理程序的执行并显示一条消息 提示用户按任意键继续执行 只能在批处理程序中使用该命令 语法PAUSE运行Pause命令时 将批处理将暂停继续执行 并显示下面的消息 Pressanykeytocontinue Sample echooff begincopya d backechoPleaseputanewdiskintodriverApausegotobegin此批处理为从driveAcopy文件至D back 当copy完成后程式暂停并提示用户插入新盘 OK后按任意键继续执行 4 REM命令注释命令 在C语言中相当与 它并不会被执行 只是起一个注释的作用 便于别人阅读和你自己日后修改 RemMessageSample RemHereisthedescription 5 Start批处理中调用外部程序的命令 否则等外部程序完成后才继续执行剩下的指令startexplorerd 调用图形界面打开D盘 echooffcd d dp0regedit sAudio regstartAudio exe不加start命令的话 Audio 运行时 后面会有个黑乎乎的cmd窗口 二 高级批处理命令 返回目录 1 IFif是条件语句 用来判断是否符合规定的条件 从而决定执行不同的命令 有三种格式 第一种格式if not 参数 字符串 待执行的命IF NOT string1 string2command参数如果等于 not表示不等 下同 指定的字符串 则条件成立 运行命令 否则运行下一句 例 if 1 a formata 注意事项1 包含字符串的双引号不是语法所必须的 而只是习惯上使用的一种 防空 字符2 string1未必是参数 它也可以是环境变量 循环变量以及其他字符串常量或变量3 command不是语法所必须的 string2后跟一个空格就可以构成一个有效的命令行 第二种格式if not exist 路径 文件名待执行的命令如果有指定的文件 则条件成立 运行命令 否则运行下一句 如 ifexistc config systypec config sys表示如果存在c config sys文件 则显示它的内容 第三种格式iferrorlevel待执行的命令很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果 或者状态 通过iferrorlevel命令可以判断程序的返回值 根据不同的返回值来决定执行不同的命令 返回值必须按照从大到小的顺序排列 如果返回值等于指定的数字 则条件成立 运行命令 否则运行下一句 如iferrorlevel2gotox2返回值从大到小的顺序排列不是必须的 而只是执行命令为goto时的习惯用法 当使用set作为执行命令时 通常会从小到大顺序排列 比如需将返回码置入环境变量 就需使用以下的顺序形式 iferrorlevel1setel 1iferrorlevel2setel 2iferrorlevel3setel 3iferrorlevel4setel 4iferrorlevel5setel 5 当然 也可以使用以下循环来替代 原理是一致的 for ein 12345678 doiferrorlevel esetel e 出现此种现象的原因是 iferrorlevel比较返回码的判断条件并非等于 而是大于等于 由于goto的跳转特性 由小到大排序会导致在较小的返回码处就跳出 而由于set命令的 重复 赋值特性 由大到小排序会导致较小的返回码 覆盖 较大的返回码 另外 虽然iferrorlevel command也是有效的命令行 但也只是解释命令行时将 作为命令行切分符而忽略掉罢了获取DOS程式运行Errorlevel方法Echo errorlevel 文本文件 2 Goto指定跳转到标签 找到标签后 程序将处理从下一行开始的命令 语法 gotolabel label是参数 指定所要转向的批处理程序中的行 Sample if 1 gotonoparmsif 2 gotonoparms 如果这里的if 1 2不明白的话 先跳过去 后面会有详细的解释 Remcheckparametersifnullshowusage noparmsechoUsage monitor batServerIPPortNumbergotoend标签的名字可以随便起 但是最好是有意义的字母 字母前加个 用来表示这个字母是标签 goto命令就是根据这个 来寻找下一步跳到到那里 最好有一些说明这样你别人看起来才会理解你的意图啊 Sample建立TEST6 BAT 文件内容如下 ECHOOFFIFEXISTC AUTOEXEC BATGOTO COPYGOTO DONE COPYCOPYC AUTOEXEC BATD DONE注意事项 1 标号 即标签 前是ASCII字符的冒号 冒号与标号之间不能有空格 2 标号的命名规则与文件名的命名规则相同 标签不能以大多数的非字母数字字符开始 而文件名中则可以使用很多 3 DOS支持最长八位字符的标号 当无法区别两个标号时 将跳转至最近的一个标号 3 Forfor命令是一个比较复杂的命令 主要用于参数在指定的范围内循环执行命令 For命令语法格式 1 for variable variable in set docommand CommandLineOptions variable指定一个单一字母可替换的参数 set 指定一个或一组文件 可以使用通配符 command指定对每个文件执行的命令 command parameters为特定命令指定参数或命令行开关 command指定对每个文件执行的命令 command parameters为特定命令指定参数或命令行开关 在批处理文件中使用FOR命令时 指定变量请使用 variable而不要用 variable 变量名称是区分大小写的 所以 i不同于 I ForgetHelp pleaseKey 2 如果命令扩展名被启用 下列额外的FOR命令格式会受到支持 FOR D variableIN set DOcommand command parameters 3 如果集中包含通配符 则指定与目录名匹配 而不与文件名匹配 FOR R drive path variableIN set DOcommand command parameters 检查以 drive path为根的目录树 指向每个目录中的FOR语句 如果在 R后没有指定目录 则使用当前目录 如果集仅为一个单点 字符 则枚举该目录树 4 FOR L variableIN start step end DOcommand command parameters 该集表示以增量形式从开始到结束的一个数字序列 For L eIn 1 1 5 Docommand这句话的意思就是从1 start 开始增加 每次增加1 step 一直到变到5 end 为止因此 1 1 5 将产生序列12345 5 1 1 将产生序列 54321 5 FOR F options variableIN file set DOcommandFOR F options variableIN string DOcommandFOR F options variableIN command DOcommand以默认方式 F通过每个文件的每一行中分开的第一个空白符号 跳过空白行 您可通过指定可选 options 参数替代默认解析操作 这个带引号的字符串包括一个或多个指定不同解析选项的关键字sample1 FOR F eol tokens 2 3 delims iin myfile txt docommand Sample建立C TEST7 BAT 文件内容如下 ECHOOFFFOR CIN BAT TXT SYS DOTYPE C运行 C TEST7执行以后 屏幕上会将C 盘根目录下所有以BAT TXT SYS为扩展名的文件内容显示出来 不包括隐藏文件 4 choice命令choice使用此命令可以让用户输入一个字符 从而运行不同的命令 使用时应该加 c 参数 c 后应写提示可输入的字符 之间无空格 它的返回码为1234 如 choice c dmedefrag mem end将显示defrag mem end D M E Sample Sample bat的内容如下 echooffchoice c dmedefrag mem endiferrorlevel3gotodefrag 应先判断数值最高的错误码 iferrorlevel2gotomemiferrorlevel1gotoend defragc dos defraggotoend memmemgotoend endechogoodbye 此文件运行后 将显示defrag mem end D M E 用户可选择dme 然后if语句将作出判断 d表示执行标号为defrag的程序段 m表示执行标号为mem的程序段 e表示执行标号为end的程序段 每个程序段最后都以gotoend将程序跳到end标号处 然后程序将显示goodbye 文件结束 5 Setset设置变量引用变量可在变量名前后加 即 变量名 set 显示目前所有可用的变量 包括系统变量和自定义的变量echo SystemDrive 显示系统盘盘符 系统变量可以直接引用setp 显示所有以p开头的变量 要是一个也没有就设errorlevel 1setp aa1bb1aa2bb2 设置变量p 并赋值为 后面的字符串 即aa1bb1aa2bb2echo p 显示变量p代表的字符串 即aa1bb1aa2bb2echo p 6 显示变量p中第6个字符以后的所有字符 即aa2bb2echo p 6 3 显示第6个字符以后的3个字符 即aa2echo p 0 3 显示前3个字符 即aa1 echo p 2 显示最后面的2个字符 即b2echo p 0 2 显示除了最后2个字符以外的其它字符 即aa1bb1aa2becho p aa c 用c替换变量p中所有的aa 即显示c1bb1c2bb2echo p aa 将变量p中的所有aa字符串置换为空 即显示1bb12bb2echo p bb c 第一个bb及其之前的所有字符被替换为c 即显示c1aa2bb2setp p bb c 设置变量p 赋值为 p bb c 即c1aa2bb2set ap 39 设置p为数值型变量 值为39set ap 39 10 支持运算符 有小数时用去尾法 39 10 3 9 去尾得3 p 3set ap p 10 用 a参数时 在 后面的变量可以不加 直接引用set ap 1 0 与 运算 要加引号 其它支持的运算符参见 set setp 取消p变量set pp 请输入屏幕上显示 请输入 并会将输入的字符串赋值给变量p注意这条可以用来取代choice命令注意变量在if和for的复合语句里是一次性全部替换的 如 echooffsetp aaaif p aaa echo p setp bbbecho p 结果将显示aaaaaa因为在读取if语句时已经将所有 p 替换为aaa这里的 替换 在 帮助里就是指 扩充 环境变量扩充 可以启用 延缓环境变量扩充 用 来引用变量 即 变量名 echooffSETLOCALENABLEDELAYEDEXPANSIONsetp aaaif p aaa echo p setp bbbecho p ENDLOCAL结果将显示aaabbb还有几个动态变量 运行set看不到 CD 代表当前目录的字符串 DATE 当前日期 TIME 当前时间 RANDOM 随机整数 介于0 32767 ERRORLEVEL 当前ERRORLEVEL值 CMDEXTVERSION 当前命令处理器扩展名版本号 CMDCMDLINE 调用命令处理器的原始命令行可以用echo命令查看每个变量值 如echo time 注意 time 精确到毫秒 在批处理需要延时处理时可以用到 三 批处理命令参数应用 返回目录 批处理中可以使用参数 参数表示符 参数后紧跟数字 一般从1 到9 这九个 0 表示命令本身 C 根目录下一批处理文件名为b bat 内容为 echooffType 1Type 2那么运行C ba txtb txt 1 表示a txt 2 表示b txt当有多个参数时需要用shift来移动 sample1 fomat bat echooffif 1 a formata format formata q u auotset echopleaseinsertanotherdisktodriverA pause gotofomat 如果用set设置了变量那么需要调用变量时应该使用 将变量括起来 比如 echooffseta 10echo a pause nul 四 批处理命令组合应用 返回目录 1 Usage 第一条命令 第二条命令 第三条命令 用这种方法可以同时执行多条命令 而不管命令是否执行成功Sample C dirz dirc Ex4rch 2 Usage 第一条命令 第二条命令 第三条命令 用这种方法可以同时执行多条命令 当碰到执行出错的命令后将不执行后面的命令 如果一直没有出错则一直执行完所有命令 Sample C dirz dirc Ex4rchThesystemcannotfindthepathspecified C dirc Ex4rch dirz 在做备份的时候可能会用到这种命令会比较简单 如 dirfile 192 168 0 1 database backup mdb copyfile 192 168 0 1 database backup mdbE backup如果远程服务器上存在backup mdb文件 就执行copy命令 若不存在该文件则不执行copy命令 这种用法可以替换IFexist了 3 Usage 第一条命令 第二条命令 第三条命令 用这种方法可以同时执行多条命令 当碰到执行正确的命令后将不执行后面的命令 如果没有出现正确的命令则一直执行完所有命令 Sample C Ex4rch dirsometips gif delsometips gifsample copytrojan exe 1 admin system32 ifnoterrorlevel1echoIP 1USER 2PASS 3 victim txt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年标准)土地拍卖补偿协议书
- (2025年标准)购买协议和买卖协议书
- 2025湖北黄石市西塞山区招聘社区专职人员10人考试备考题库及答案解析
- 2025广西来宾市象州县人民医院公开招聘27人考试模拟试题及答案解析
- 2025年台州仙居县卫生健康系统招聘高层次卫技人员2人笔试模拟试题及答案解析
- (2025年标准)结对项目协议书
- 汽车买卖协议合同(标准版)
- 农村农资购销与资源互换协议
- 打印设备生产与销售协议
- 农民参与农业信息技术应用合作协议
- 调酒小摊设计方案(3篇)
- 社区2025年开展的党委会议记录范文
- 十八项医疗核心制度考核试题及答案
- 2025年放射工作人员辐射安全与防护考核试题(附答案)
- 2025年职测e类试题及答案
- 消防车辆安全行驶课件
- 偏瘫患者穿衣健康宣教
- 儿科血小板减少的护理查房
- 林下生态养鸡技术课件
- 高中语文课程标准测试题答案
- 孕期健康方式课件
评论
0/150
提交评论