Board logo

标题: [文本处理] [已解决]求查错,批处理找出字符最多的行,不含空格。 [打印本页]

作者: BHsolve    时间: 2014-1-15 17:23     标题: [已解决]求查错,批处理找出字符最多的行,不含空格。

本帖最后由 BHsolve 于 2014-1-16 09:08 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set comp=1
  4. for /f "tokens=* delims=" %%i in (a.txt) do (
  5. set /a n+=1
  6. set line!n!=%%i
  7. for %%I in (%%i) do (
  8. set var=%%I
  9. call :length judge)
  10. if !n! gtr 1 (
  11. if num!comp! leq num!n! set comp=!n!
  12. ))
  13. echo 最多字符串的行为!comp!:line!comp!
  14. goto :eof
  15. :length judge
  16. set num=0
  17. :loop
  18. call set temp=%%var:~!num!,1%%
  19. set num+=1
  20. set num!n!+=1
  21. if "!temp!" neq "" (goto loop)
  22. pause > nul
复制代码
代码如上,运行后成了死循环,求解释
作者: xxpinqz    时间: 2014-1-15 19:29

这样逐字检测效率很低的,论坛上应该有类似的帖子可以参考的。
目测死循环应该是由19-20行的set出错,“set”应该改为计算的“set/a ”
貌似13行的echo 最多字符串的行为!comp!:line!comp!也是有误吧,你的原意应该是:
echo 最多字符串的行为!comp!:!line%comp%!
作者: xxpinqz    时间: 2014-1-15 19:32

最后一行pause >nul最好删除了。
14行改为pause&goto :eof
作者: BHsolve    时间: 2014-1-16 09:07

回复 2# xxpinqz

果然,灰常感谢。
作者: BHsolve    时间: 2014-1-16 09:28

回复 3# xxpinqz


    多谢指点




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