作者:youxi01 转载请注明;
我想不管是什么人,都是一边写代码,一边调试
如果没有正确的调试方法,那会大大降低写代码的效率,特别是碰到一些大型的“程序”...
下面就我个人的一些经历,谈谈我的一些关于批处理的调试方法....
第一步:
去掉@echo off
几乎每个人都有这样的书写习惯,屏蔽命令回显。但是,在调试过程中,我们却要研究到底哪一行出了错误,所以这个时候再不能屏蔽命令行回显了...
第二步:(针对新手,老手直接跳过)
在原代码的每行的下一行添加pause(当然,也要把你前面添加的pause去掉)
举例说明,测试代码:- @echo off
- echo Happy new year
- echo Best wishs to everyone
- if a==a echo ok> %=====注意,这句末尾有个 > ,是个特殊符号,运行到这里,程序会意外退出=====%
- pause>nul
复制代码 运行这个代码的时候,我们会看到批处理窗口,一闪而过(运行过程中有错误),说明我们的程序有语法错误。作为新手,我们调试的时候要怎么办呢?我们就尝试在每行的后面添加 pause 的方法,如:- @echo off
- echo Happy new year
- pause %=========这里添加一个pause=======%
- echo Best wishs to everyone
- if a==a echo ok> %=====注意,这句末尾有个 > ,是个特殊符号,运行到这里,程序会意外退出=====%
- pause>nul
复制代码 我们再运行,发现程序竟然没意外退出,这个说明 第一 个pause前面的代码没出现语法错误,然后删除 pause这一行,在下一行 插入pause 看运行结果,例:- @echo off
- echo Happy new year
- echo Best wishs to everyone
- pause %=========这里添加一个pause=======%
- if a==a echo ok> %=====注意,这句末尾有个 > ,是个特殊符号,运行到这里,程序会意外退出=====%
- pause>nul
复制代码 运行,发现也没运行错误,说明前面的语句都没错,那就继续下,直到找到错误的地方....
第三步:(面对“老手”)
呵呵,这个夸张了点,可能老手都知道了,方法就是在 命令行下 直接调用自己的 调试文件,看返回结果哪里出现错误(这个需要眼睛非常 利索 罗);
再拿以上的代码来测试(假设保存为f:\test.bat,):
命令行下,输入 f:\test.bat,看运行结果:- F:\>F:\test.bat
- Happy new year
- Best wishs to everyone
- 命令语法不正确。
复制代码 很明显,在echo Best wishs to everyone 下出现了语法错误;
当然,这个程序非常短,错误排查比较简单,如果程序段非常长,那就比较麻烦。也用这种办法去排查(先去掉@echo off),但是眼睛要紧紧盯着运行窗口,看看哪里开始出现错误,只要一出现,就马上按 ctrl + c ,然后看看,程序提示的错误是什么,下面的工作就由你们自己去完成了,呵呵...
欢迎批评指正! |