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

[其他] 向大家教个调试批处理的方法?

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

本人的经验:把@echo off去掉,在合适的地方加个pause,对变量不太清楚的话再echo.变量。

TOP

把@echo off去掉
开始
运行
cmd
YourFile.bat

TOP

非常感谢分享经验
的确有用!
请问大家有“块注释”的好办法吗?

TOP

谢谢楼主,提供经验,嘎嘎,新手学到了

TOP

回复 4楼 的帖子

TOP

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

TOP

如果批处理很长的话,我一般是逐个模块进行测试,然后再整合。

TOP

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

TOP

代码很长的话,我也喜欢把功能分离成模块,一个一个调试..
要注释一块代码,只要不是在call或者for中间,直接goto跳过当做注释

TOP

回复 9楼 的帖子

批处理为什么要用Debug来调试?

TOP

在批处理中有 exit 先去除,或在可能出错的地方的不同行 加 pause ,运行时就可以根据暂停的次数判断哪出错了。
如果是比较复杂的话,我也是逐块逐块调试好,然后组合起来。

TOP

回复 11楼 的帖子

那不是DEBUG调试..
那个DEBUG只是个变量..
设置为1时,代码变注释
设置为0时,代码正常执行而已

TOP

回复 7# lxzzr


    还有这种骚操作,注释也可以动态?

TOP

回复 14# pda8888


批处理有预处理,预处理类似于C语言的宏替换,
由于预处理拥有变更代码的能力,不光注释,变量名,代码之类都能”动态“

TOP

返回列表