批处理调试.docx_第1页
批处理调试.docx_第2页
批处理调试.docx_第3页
批处理调试.docx_第4页
批处理调试.docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

批处理调试我想不管是什么人,都是一边写代码,一边调试如果没有正确的调试方法,那会大大降低写代码的效率,特别是碰到一些大型的“程序”.下面就我个人的一些经历,谈谈我的一些关于批处理的调试方法.第一步:去掉echo off几乎每个人都有这样的书写习惯,屏蔽命令回显。但是,在调试过程中,我们却要研究到底哪一行出了错误,所以这个时候再不能屏蔽命令行回显了.第二步:(针对新手,老手直接跳过)在原代码的每行的下一行添加pause(当然,也要把你前面添加的pause去掉)举例说明,测试代码:复制内容到剪贴板代码:echo offecho Happy new yearecho Best wishs to everyoneif a=a echo ok %=注意,这句末尾有个 ,是个特殊符号,运行到这里,程序会意外退出=%pausenul运行这个代码的时候,我们会看到批处理窗口,一闪而过(运行过程中有错误),说明我们的程序有语法错误。作为新手,我们调试的时候要怎么办呢?我们就尝试在每行的后面添加 pause 的方法,如:复制内容到剪贴板代码:echo offecho Happy new yearpause %=这里添加一个pause=%echo Best wishs to everyoneif a=a echo ok %=注意,这句末尾有个 ,是个特殊符号,运行到这里,程序会意外退出=%pausenul我们再运行,发现程序竟然没意外退出,这个说明 第一 个pause前面的代码没出现语法错误,然后删除 pause这一行,在下一行 插入pause 看运行结果,例:复制内容到剪贴板代码:echo offecho Happy new yearecho Best wishs to everyonepause %=这里添加一个pause=%if a=a echo ok %=注意,这句末尾有个 ,是个特殊符号,运行到这里,程序会意外退出=%pausenul运行,发现也没运行错误,说明前面的语句都没错,那就继续下,直到找到错误的地方.第三步:(面对“老手”)呵呵,这个夸张了点,可能老手都知道了,方法就是在 命令行下 直接调用自己的调试文件,看返回结果哪里出现错误(这个需要眼睛非常 利索 罗);再拿以上的代码来测试(假设保存为f:test.bat,):命令行下,输入 f:test.bat,看运行结果:复制内容到剪贴板代码:F:F:test.batHappy new yearBest wishs to everyone命令语法不正确。很明显,在echo Best wishs to everyone 下出现了语法错误;当然,这个程序非常短,错误排查比较简单,如果程序段非常长,那就比较麻烦。也用这种办法去排查(先去掉echo off),但是眼睛要紧紧盯着运行窗口,看看哪里开始出现错误,只要一出现,就马上按 ctrl + c ,然后看看,程序提示的错误是什么,下面的工作就由你们自己去完成了,呵呵.一、call 命令问题调试调试:在c:根目录建立1.bat,2.bat。当调用与被调用的文件在同一个目录下时,不用制定路径。问题(1)新建1.bat,2.bat并放在c盘根目录1.bat内容:echo offecho调试1.bat使用call调用2.bat以后是否直接从头运行被调用的批处理程序2.bat。echo echo echo echo 这是1.bat的第一句命令。echo 下面是命令call c:2.bat。pauseclsrem 清屏命令call c:2.batrem 路径为c盘根目录,当调用与被调用的文件在同一个目录下时,不用制定路径。pause echo echo echo 如果上面的显示的是:echo 这是2.bat的第一句话。echo 这是2.bat的第二句话。echo 2.bat运行完毕。echo 说明1.bat使用call调用2.bat以后是直接从头运行被调用的批处理程序2.bat的。pauseclsecho 问题一测试完成。echo 按任意键退出。pauseexit rem 推出程序2.bat内容echo offecho 这是2.bat的第一句话。echo 这是2.bat的第二句话。echo 2.bat运行完毕。(3)echo offecho “call 命令接受用作调用目标的标签。”是否是指在1.bat中可以含有call :label,那么call:label与goto :label有什么区别。echo 第一句话echo 第二句话echo 使用call跳到第四句话pausecall jumperecho 第三句话:jumperecho 第四句话echo echo 如果显示的是“第四句话”,并且不显示“第三句话”证明call可以调用labelpauseexit运行界面如下:按任意键,显示:图显示错误:jumper不是内部或外部命令,也不是可运行的程序有错误提示可推断出,“用作调用目标的标签”指的是内部或者外部命令,即dos的命令,可运行的程序指.com .bat结尾的可执行程序。改为如下语句测试:echo offecho “call 命令接受用作调用目标的标签。”echo 第一句话echo 第二句话pausecall verrem ver为显示版本的命令,此处是为了测试方便,也可以使用dir目录命令查看一下。效果一样的。echo 第三句话echo 第四句话echo 按任意键退出pauseexit显示如下:测试成功。二、start命令调试问题1:echo offstart verpause显示界面如下:echo offverpause显示界面如下:测试结果:使用start会重新弹出一个窗口。批处理命令教程简单批处理内部命令批处理是什么?批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。它的构成没有固定格式,遵守以下这条:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。简单的说,它的作用就是自动的连续执行多条命令,批处理文件的内容就是一条一条的命令。比如你想执行几条dos命令(批处理的运行平台的dos),你可以把那几条命令写成一个批处理,运行的时候它就会逐条执行。创建批处理文件建立一个任何格式文件,后缀名改成.bat即可。在文件上右击,编辑,可以对批处理进行修改编辑,双击直接运行文件。1、Echo功能:打开关闭回显功能,或显示消息。默认显示回显。语法:echo message常用:echo off关闭回显,可以不显示我们的命令。注意:echo命令默认是显示回显所以入侵编程的时候第一句都是echo off2、 命令功能:不显示后面的命令常用:常用命令就是在每一句代码前面都加上命令,不显示任何一句命令。开头使用了echo off,照样可以不显示我们的命令。3、Pause功能:运行 Pause 命令时,将显示下面的消息:Press any key to continue . . .常用:用于交互示提醒或者调试程序,相当于下断吧。注意:命令只是在这里暂停,当你按下任意键以后程序回继续执行后面的语句。4、rem ,:功能:注释命令。5、goto功能:跳转到标签,然后程序将从下一行开始执行。语法:goto label 标签以“:”开头。6、call功能:调用另一个批处理程序。call 命令接受用作调用目标的标签。语法:call Drive:Path FileName BatchParameters :label arguments注意:call可以调用自身,就是可以生成死循环。 7.start 命令调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。8、If 命令有三种格式:1、if 参数 = 字符串 待执行的命令参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)如if %1=a format a:if = goto noparmsif = goto noparms2、if exist 文件名 待执行的命令如果有指定的文件,则条件成立,运行命令,否则运行下一句。如if exist config.sys edit config.sysif exist c:boot.ini ver文件名可制定路径,如果不制定即为当前目录。3、if errorlevel / if not errorlevel 数字 待执行的命令如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。如if errorlevel 2 goto x2 DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回码为0、1。9、管道命令|、| 的作用,就是把前一命令的输出当后一命令的输入来用| more 显示满屏后暂停,当按回车时,变成一行一行的出现;按下空格键时一屏幕一屏幕显示,直到全部显示完为止;按其他键自动停止返回DOS。more 和type命令的异同他们都可以显示内容,more是一屏幕一屏幕的显示,type是一次全部打开显示。、都是输出重定向命令,就是把前面命令的输出写入到一个文件中。如果没有此文件名,会自动建立。这两个命令的唯一区别是,会清除掉原有文件中的内容后把新的内容写入原文件,而只会另起一行追加新的内容到原文件中,而不会改动其中的原有内容。10、组合命令&、&、|&它的作用是用来连接n个DOS命令,并把这些命令按顺序执行,而不管是否有命令执行失败。&与&命令不同之处在于,它在从前往后依次执行被它连接的几个命令时会自动判断是否有某个命令执行出错,一旦发现出错后将不继续执行后面剩

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论