找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 88820|回复: 15

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

[复制链接]
发表于 2010-4-4 16:57:18 | 显示全部楼层 |阅读模式
有时批处理发生故障后(比如说遇到了goto a,但批处理文件里却没有标签a),虽然cmd.exe会提示,但是窗口一闪而过,根本看不清错误提示。
在这里我想大家教个方法——在要调试的批处理旁边再做一个批处理去start哪个要调试的批处理,就回打开哪个要调试的批处理,并且即使发生错误也不会关闭,让你有时间看清错误现象和提示。就像下面这样
不过遇到调试的批处理里的exit命令,批处理还是照样会关掉的~~
大家可以试试~~~
别忘跟贴啊~~~
提示:用pause没用
我连%0都没用的
不信可以试
发表于 2010-4-4 18:52:04 | 显示全部楼层
本人的经验:把@echo off去掉,在合适的地方加个pause,对变量不太清楚的话再echo.变量。
发表于 2010-4-4 18:58:18 | 显示全部楼层
把@echo off去掉
开始
运行
cmd
YourFile.bat
发表于 2010-4-4 19:03:35 | 显示全部楼层
非常感谢分享经验
的确有用!
请问大家有“块注释”的好办法吗?
发表于 2010-4-4 22:19:52 | 显示全部楼层
谢谢楼主,提供经验,嘎嘎,新手学到了
发表于 2010-4-4 22:45:07 | 显示全部楼层

回复 4楼 的帖子

发表于 2010-4-4 22:50:24 | 显示全部楼层
如果批处理很长的话,我一般用以下方法:
  1. @echo off
  2. set DEBUG=1
  3. if %DEBUG% == 0 (set trace=echo.) else (set trace=rem )


  4. %trace%代码...
复制代码
发表于 2010-4-4 22:57:26 | 显示全部楼层
如果批处理很长的话,我一般是逐个模块进行测试,然后再整合。
发表于 2010-4-6 01:26:39 | 显示全部楼层
7楼的办法
我看不懂,刚才在网上搜了半天也没找到 批处理中如何用Debug来调试。
哪位前辈,提供个简单的算例好吗?
或者发个学习介绍这个知识点的页面地址也行。谢谢了!
发表于 2010-4-6 09:02:04 | 显示全部楼层
代码很长的话,我也喜欢把功能分离成模块,一个一个调试..
要注释一块代码,只要不是在call或者for中间,直接goto跳过当做注释
发表于 2010-4-6 09:28:33 | 显示全部楼层

回复 9楼 的帖子

批处理为什么要用Debug来调试?
发表于 2010-4-6 09:51:47 | 显示全部楼层
在批处理中有 exit 先去除,或在可能出错的地方的不同行 加 pause ,运行时就可以根据暂停的次数判断哪出错了。
如果是比较复杂的话,我也是逐块逐块调试好,然后组合起来。
发表于 2010-4-6 15:47:03 | 显示全部楼层

回复 11楼 的帖子

那不是DEBUG调试..
那个DEBUG只是个变量..
设置为1时,代码变注释
设置为0时,代码正常执行而已
发表于 2023-10-13 22:51:04 | 显示全部楼层
回复 7# lxzzr


    还有这种骚操作,注释也可以动态?
发表于 2023-10-14 18:49:22 | 显示全部楼层
回复 14# pda8888


批处理有预处理,预处理类似于C语言的宏替换,
由于预处理拥有变更代码的能力,不光注释,变量名,代码之类都能”动态“
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:08 , Processed in 0.022163 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表