标题: [文本处理] 批处理怎样统计文本文档特定字符出现次数? [打印本页]
作者: BS0小陈 时间: 2011-9-1 21:19 标题: 批处理怎样统计文本文档特定字符出现次数?
我建立批处理来统计1.txt中a出现的次数,不知道哪里出了错,求指教- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (1.txt) do (
- set d=%%a
- call:a
- )
- echo.!num!
- pause
- :a
- set n=!d:~0,1!
- if "!d!"=="" goto:eof
- set d=!d:~1!
- if "!n!"=="a" (
- set /a num+=1
- echo !num! !d!
- goto :a)
复制代码
作者: garyng 时间: 2011-9-1 21:58
能否把a.txt里面的内容也写贴出来?
还有我测试了下~
发现你的代码只有由"a"开头的那行才会被计算~
作者: FOR 时间: 2011-9-1 22:04
if "!n!"=="a" 当此等式不成立时直接goto :eof 了,没有再继续逐字判断。
作者: CrLf 时间: 2011-9-1 22:23
也许可以这样:- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in (1.txt) do (
- set tmp=%%aa
- set tmp=!tmp:"=!
- set tmp=!tmp:a=" "a!
- for %%a in ("!tmp!") do set /a n+=1
- set /a n-=2
- )
- echo 1.txt 中有 !n! 个 a
- pause
复制代码
作者: BS0小陈 时间: 2011-9-2 10:04
回复 3# FOR
谢谢!!!改了下:- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (1.txt) do (
- set d=%%a
- call:a
- )
- echo.!num!
- pause
- :a
- set n=!d:~0,1!
- if "!d!"=="" goto:eof
- set d=!d:~1!
- if "!n!"=="a" (
- set /a num+=1
- echo !num! !d!
- )
- goto :a
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |