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

[文本处理] 批处理计算每行字符串的数量,只显示第一行?

文本内容:a.txt
  1. baaaaaa aaaa bbbbbb ccccccccccc dddd
  2. aa aaaaaaa bbbbbbbb cccccccccc ddddddddddddd eeeeeee
  3. aaaaaaaaaaaa bbbbbbbbbbb cccccccccccccccccccc
  4. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aa
  5. aaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbb
  6. aaaaaaaaa ccccccccc bbbbbbbbbbbbb ddddddddddddddddd
复制代码
批处理显示每行的字符串数量(不算空格
  1. @echo off
  2. Setlocal Enabledelayedexpansion
  3. set n=0
  4. for /f "delims=" %%i in (a.txt) do (
  5. set "ke=%%i"
  6. set ke1=!ke: =!
  7. set m=0
  8. :1
  9. if  "!ke1:~%m%,1!" gtr "" set /a m+=1&goto 1
  10. echo !m!
  11. )
  12. pause
复制代码


为什么只显示第一行的  我错在哪里!

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (a.txt) do (
  4.     set "ke=%%i"
  5.     set ke1=!ke: =!
  6.     set m=0
  7.     call :loop
  8. )
  9. pause
  10. goto :eof
  11. :loop
  12. if  "!ke1:~%m%,1!" gtr "" set /a m+=1&goto :loop
  13. echo !m!
复制代码

TOP

我知道 这样可以   但是不知道为什么 我那样不可以

TOP

还有 为什么在调用中一定要&goto loop  不可以另起一行goto loop

TOP

本帖最后由 Taurus 于 2012-12-8 08:39 编辑

for 迥圈內不能用標韱啊

改這樣看
  1. @echo off
  2. Setlocal Enabledelayedexpansion
  3. set n=0
  4. for /f "delims=" %%i in (a.txt) do (
  5.     set "ke=%%i"
  6.     set ke1=!ke: =!
  7.     set m=0
  8.     call :1
  9. )
  10. pause
  11. exit
  12. :1
  13. if  "!ke1:~%m%,1!" gtr "" set /a m+=1&goto 1
  14. echo !m!
  15. goto :eof
复制代码
带内地用语或带里语的文章,在下读写总觉有点吃力;
如误解了各位意思的讲勿见怪   ^_^

TOP

返回列表