Board logo

标题: [其他] 向大家教个调试批处理的方法? [打印本页]

作者: zcydez    时间: 2010-4-4 16:57     标题: 向大家教个调试批处理的方法?

有时批处理发生故障后(比如说遇到了goto a,但批处理文件里却没有标签a),虽然cmd.exe会提示,但是窗口一闪而过,根本看不清错误提示。
在这里我想大家教个方法——在要调试的批处理旁边再做一个批处理去start哪个要调试的批处理,就回打开哪个要调试的批处理,并且即使发生错误也不会关闭,让你有时间看清错误现象和提示。就像下面这样
不过遇到调试的批处理里的exit命令,批处理还是照样会关掉的~~
大家可以试试~~~
别忘跟贴啊~~~
提示:用pause没用
我连%0都没用的
不信可以试
作者: more    时间: 2010-4-4 18:52

本人的经验:把@echo off去掉,在合适的地方加个pause,对变量不太清楚的话再echo.变量。
作者: bat007    时间: 2010-4-4 18:58

把@echo off去掉
开始
运行
cmd
YourFile.bat
作者: huzi525    时间: 2010-4-4 19:03

非常感谢分享经验
的确有用!
请问大家有“块注释”的好办法吗?
作者: js588    时间: 2010-4-4 22:19

谢谢楼主,提供经验,嘎嘎,新手学到了
作者: bat007    时间: 2010-4-4 22:45     标题: 回复 4楼 的帖子

goto,参考:
http://bbs.bathome.net/thread-7492-1-1.html
作者: lxzzr    时间: 2010-4-4 22:50

如果批处理很长的话,我一般用以下方法:
  1. @echo off
  2. set DEBUG=1
  3. if %DEBUG% == 0 (set trace=echo.) else (set trace=rem )
  4. %trace%代码...
复制代码

作者: bat007    时间: 2010-4-4 22:57

如果批处理很长的话,我一般是逐个模块进行测试,然后再整合。
作者: huzi525    时间: 2010-4-6 01:26

7楼的办法
我看不懂,刚才在网上搜了半天也没找到 批处理中如何用Debug来调试。
哪位前辈,提供个简单的算例好吗?
或者发个学习介绍这个知识点的页面地址也行。谢谢了!
作者: caruko    时间: 2010-4-6 09:02

代码很长的话,我也喜欢把功能分离成模块,一个一个调试..
要注释一块代码,只要不是在call或者for中间,直接goto跳过当做注释
作者: GNU    时间: 2010-4-6 09:28     标题: 回复 9楼 的帖子

批处理为什么要用Debug来调试?
作者: crartor    时间: 2010-4-6 09:51

在批处理中有 exit 先去除,或在可能出错的地方的不同行 加 pause ,运行时就可以根据暂停的次数判断哪出错了。
如果是比较复杂的话,我也是逐块逐块调试好,然后组合起来。
作者: caruko    时间: 2010-4-6 15:47     标题: 回复 11楼 的帖子

那不是DEBUG调试..
那个DEBUG只是个变量..
设置为1时,代码变注释
设置为0时,代码正常执行而已
作者: pda8888    时间: 2023-10-13 22:51

回复 7# lxzzr


    还有这种骚操作,注释也可以动态?
作者: Five66    时间: 2023-10-14 18:49

回复 14# pda8888


批处理有预处理,预处理类似于C语言的宏替换,
由于预处理拥有变更代码的能力,不光注释,变量名,代码之类都能”动态“
作者: yyz219    时间: 2023-10-14 20:18

谢谢 学习了




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2