[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创] 批处理调试方法略谈

作者:youxi01 转载请注明;

我想不管是什么人,都是一边写代码,一边调试
如果没有正确的调试方法,那会大大降低写代码的效率,特别是碰到一些大型的“程序”...
下面就我个人的一些经历,谈谈我的一些关于批处理的调试方法....

第一步:
去掉@echo off

几乎每个人都有这样的书写习惯,屏蔽命令回显。但是,在调试过程中,我们却要研究到底哪一行出了错误,所以这个时候再不能屏蔽命令行回显了...

第二步:(针对新手,老手直接跳过)
在原代码的每行的下一行添加pause(当然,也要把你前面添加的pause去掉)
举例说明,测试代码:
  1. @echo off
  2. echo Happy new year
  3. echo Best wishs to everyone
  4. if a==a echo ok>   %=====注意,这句末尾有个 > ,是个特殊符号,运行到这里,程序会意外退出=====%
  5. pause>nul
复制代码
运行这个代码的时候,我们会看到批处理窗口,一闪而过(运行过程中有错误),说明我们的程序有语法错误。作为新手,我们调试的时候要怎么办呢?我们就尝试在每行的后面添加 pause 的方法,如:
  1. @echo off
  2. echo Happy new year
  3. pause %=========这里添加一个pause=======%
  4. echo Best wishs to everyone
  5. if a==a echo ok>   %=====注意,这句末尾有个 > ,是个特殊符号,运行到这里,程序会意外退出=====%
  6. pause>nul
复制代码
我们再运行,发现程序竟然没意外退出,这个说明 第一 个pause前面的代码没出现语法错误,然后删除 pause这一行,在下一行 插入pause 看运行结果,例:
  1. @echo off
  2. echo Happy new year
  3. echo Best wishs to everyone
  4. pause %=========这里添加一个pause=======%
  5. if a==a echo ok>   %=====注意,这句末尾有个 > ,是个特殊符号,运行到这里,程序会意外退出=====%
  6. pause>nul
复制代码
运行,发现也没运行错误,说明前面的语句都没错,那就继续下,直到找到错误的地方....

第三步:(面对“老手”)
呵呵,这个夸张了点,可能老手都知道了,方法就是在 命令行下 直接调用自己的 调试文件,看返回结果哪里出现错误(这个需要眼睛非常 利索 罗);

再拿以上的代码来测试(假设保存为f:\test.bat,):
命令行下,输入 f:\test.bat,看运行结果:
  1. F:\>F:\test.bat
  2. Happy new year
  3. Best wishs to everyone
  4. 命令语法不正确。
复制代码
很明显,在echo Best wishs to everyone 下出现了语法错误;
当然,这个程序非常短,错误排查比较简单,如果程序段非常长,那就比较麻烦。也用这种办法去排查(先去掉@echo off),但是眼睛要紧紧盯着运行窗口,看看哪里开始出现错误,只要一出现,就马上按 ctrl + c ,然后看看,程序提示的错误是什么,下面的工作就由你们自己去完成了,呵呵...

欢迎批评指正!

返回列表