标题: [文本处理] 批处理计算每行字符串的数量,只显示第一行? [打印本页]
作者: o00o00o00 时间: 2012-12-7 16:51 标题: 批处理计算每行字符串的数量,只显示第一行?
文本内容:a.txt- baaaaaa aaaa bbbbbb ccccccccccc dddd
- aa aaaaaaa bbbbbbbb cccccccccc ddddddddddddd eeeeeee
- aaaaaaaaaaaa bbbbbbbbbbb cccccccccccccccccccc
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aa
- aaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbb
- aaaaaaaaa ccccccccc bbbbbbbbbbbbb ddddddddddddddddd
复制代码
批处理显示每行的字符串数量(不算空格- @echo off
- Setlocal Enabledelayedexpansion
- set n=0
- for /f "delims=" %%i in (a.txt) do (
- set "ke=%%i"
- set ke1=!ke: =!
- set m=0
- :1
- if "!ke1:~%m%,1!" gtr "" set /a m+=1&goto 1
- echo !m!
- )
-
- pause
复制代码
)
为什么只显示第一行的 我错在哪里!
作者: BAT-VBS 时间: 2012-12-7 19:12
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in (a.txt) do (
- set "ke=%%i"
- set ke1=!ke: =!
- set m=0
- call :loop
- )
- pause
- goto :eof
-
- :loop
- if "!ke1:~%m%,1!" gtr "" set /a m+=1&goto :loop
- echo !m!
复制代码
作者: o00o00o00 时间: 2012-12-8 07:17
我知道 这样可以 但是不知道为什么 我那样不可以
作者: o00o00o00 时间: 2012-12-8 07:23
还有 为什么在调用中一定要&goto loop 不可以另起一行goto loop
作者: Taurus 时间: 2012-12-8 08:32
本帖最后由 Taurus 于 2012-12-8 08:39 编辑
for 迥圈內不能用標韱啊
改這樣看- @echo off
- Setlocal Enabledelayedexpansion
- set n=0
- for /f "delims=" %%i in (a.txt) do (
- set "ke=%%i"
- set ke1=!ke: =!
- set m=0
- call :1
- )
- pause
- exit
- :1
- if "!ke1:~%m%,1!" gtr "" set /a m+=1&goto 1
- echo !m!
- goto :eof
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |