本帖最后由 zm900612 于 2011-7-12 19:11 编辑
10# q115643492
碰到莫名其妙错误时,我常常用以下几种方法差错:- 错误退出时,改用 cmd /k 启动 bat ,碰到错误退出的情况时不会完全退出 cmd
- 怀疑某些部分未执行或者结果异常时,在关键的节点开回显、下断点、输出到文件、单步执行
- 代码的任何地方都有可能是错误源、不知道具体哪个部分出错时,可以用折半法或者每隔 N 行标记一个 cmd /q /v:on 和 pause ,逐段检查
- 找到了出问题的命令,但是出错原因却匪夷所思时,木油办法了,要么摆渡股沟,要么咨询别人,要么自己瞎蒙吧...
复制代码 比如楼主这个刚运行时就退出了,用 cmd /k 执行发现错在 in(,加上分隔符后仍然出错,于是扔个 echo !w!&pause 到 for 中单步执行,发现是空循环,症结就找到了...- @echo off&setlocal enabledelayedexpansion
- %1 cmd /k %0 ::
- ::改用 cmd /k 启动自身
- for /f %%a in(1.txt) do (
- set w=%%a
- echo !w!&pause
- rem 单步执行
- if defined w (echo !w!) else (echo 无字符)
- )
- pause>nul
复制代码 不知道大家怎么查错的,有木有人交流下? |