标题: [文本处理] 批处理如何实现以关键词+固定字符为文件名分别输出行数统计? [打印本页]
作者: wh1234567 时间: 2012-3-8 15:20 标题: 批处理如何实现以关键词+固定字符为文件名分别输出行数统计?
本帖最后由 wh1234567 于 2012-3-8 22:29 编辑
set Area=美女,丑女,好书
.....
......>>%%i结果.txt
美女结果.txt
丑女结果.txt
好书结果.txt
如何分别以关键词+结果.txt为文件名统计行数,和全部关键词+结果.txt为文件名的多个文本的总共行数统计
在代码里添加什么命令代码,添加到哪里即可实现?
要求显示的统计数在最后,例如set /A Sum=Sum+1
echo %%i结果.txt共计:%hangshu% 行
......
echo 全部关键词%geshu%个 无效关键词 %%i 共%wuxiao%个 输出有效全部关键词+结果.txt %jige%个文本 合计:%heji% 行
pause
%jige%个文本 也就是输出的有效关键词+结果.txt 的总文件个数
作者: BAT1 时间: 2012-3-8 15:41
论坛里有。。
作者: CrLf 时间: 2012-3-8 15:48
楼主怎么发了这么多帖子还是没学会怎么搜索和提问呢...
如果实在搜索不到也罢了,但是提问时至少要给出比较完整的背景啊,比如是统计单个文件还是多个文件、统计时是否忽略空行等等
作者: wh1234567 时间: 2012-3-8 20:24
论坛里没有搜索到。。希望坛友帮助
作者: find 时间: 2012-3-8 20:49
- @echo off
- set Area=美女,丑女,好书
- for %%a in (%Area%) do (
- findstr "%%a" a.txt >%%a结果.txt
- )
复制代码
作者: terse 时间: 2012-3-8 21:44
本帖最后由 terse 于 2012-3-8 22:34 编辑
蒙一个楼主的意思 是否可行- @echo off
- set Area=美女,丑女,好书
- for %%i in (%Area%) do (
- if exist "%%i.TXT" (
- set/a M+=1
- for /f %%j in ('"find /v /c "" <%%i结果.TXT"') do echo %%i结果.TXT %%j行&set/a N+=%%j
- )
- )
- echo 全部关键词 %M% 个文本 总行数 %N% 行
- pause
复制代码
作者: wh1234567 时间: 2012-3-8 22:30
本帖最后由 wh1234567 于 2012-3-8 23:37 编辑
回复 6# terse
感谢你理解了我的意思
处理过程显示:
已完成对 丑女 的处理
正在处理的为: 好书
系统找不到指定的文件。
已完成对 好书 的处理
美女结果.TXT 28行
丑女结果.TXT 14行
好书结果.TXT 1行
全部关键词 3 个文本 总行数 43 行
好书结果.TXT里面输出的是无用字符,能不能将无效的不记录也不输出?也就是如果没有“好书.txt”的话就不记录“好书结果.TXT 1行”和不输出“好书结果.TXT”,这样的话
全部关键词 3 个文本 总行数 43 行
应该是
全部关键词 3 个 无效关键词 好书 共 1 个 输出有效全部关键词 2 个文本 输出有效总行数合计 42 行
作者: terse 时间: 2012-3-8 22:35
本帖最后由 terse 于 2012-3-8 22:44 编辑
回复 7# wh1234567
再试上面代码 先看下输出结果 看你要求 代码还是不能完成
作者: wh1234567 时间: 2012-3-8 22:50
回复 8# terse
代码可以执行,能不能将echo %%i结果.TXT %%j行放在括号外面方便我随意任意地方插入,另外能不能按照我上面表述的意思完美修改下代码
作者: wh1234567 时间: 2012-3-9 15:21 标题: 求助:批处理统计
@echo off
set Area=美女,丑女,好书
。。。。。。
echo 全部关键词 %M% 个
pause
作者: apang 时间: 2012-3-9 15:52
瞎猜,看对不对- @echo off
- set Area=美女,丑女,好书
- for %%a in (%Area%) do set/a M+=1
- echo 全部关键词 %M% 个
- pause
复制代码
作者: wh1234567 时间: 2012-3-9 16:05
回复 2# apang
是的,呵呵,能不能帮我完善http://www.bathome.net/thread-15799-1-1.html
作者: apang 时间: 2012-3-9 16:10
回复 apang
是的,呵呵,能不能帮我完善
wh1234567 发表于 2012-3-9 16:05
这个,实在是看不懂啥意思呢。。。
作者: wh1234567 时间: 2012-3-9 16:26
回复 4# apang
现在就差“无效关键词 好书 共 1 个”和如果没有“好书.txt”的话就不输出“好书结果.TXT 1行”的代码了,你仔细看看
无效关键词是在处理命令过程中的记录
处理过程显示:
已完成对 丑女 的处理
正在处理的为: 好书
系统找不到指定的文件。
已完成对 好书 的处理
作者: wh1234567 时间: 2012-3-9 16:56 标题: 批处理记录没输出的关键词和个数
本帖最后由 wh1234567 于 2012-3-9 17:21 编辑
例如:
关键词3个但输出只有2个,其中1个是无效没有输出。
美女.txt
丑女.txt
@echo off
set Area=美女,丑女,好书
.....
......>>%%i.txt
echo 无效关键词%W% 共%x% 个
pause
如何弄代码
作者: terse 时间: 2012-3-9 18:14
回复 9# wh1234567 - @echo off&setlocal enabledelayedexpansion
- set Area=美女,丑女,好书
- set NOT=&for %%i in (Num N M U) DO set %%i=0
- for %%i in (%Area%) do (
- set /a Num+=1
- if exist "%%i.TXT" (
- set/a M+=1
- for /f %%j in ('"find /v /c "" <%%i结果.TXT"') do echo %%i结果.TXT %%j行&set/a N+=%%j
- ) ELSE SET /A U+=1&set Not=!Not! %%i
- )
- echo 全部关键词 %Num% 个文本 无效关键词!Not! !U! 个 有效全部关键词 !M! 个文本 有效总行数合计 %N% 行
- pause
复制代码
作者: find 时间: 2012-3-9 18:55
回复 7# wh1234567
你最开始发帖就应该说清楚,不能老让别人猜啊!
作者: wh1234567 时间: 2012-3-10 01:05
本帖最后由 wh1234567 于 2012-3-10 23:18 编辑
回复 16# terse
不错,就是这种的,
显示:
全部关键词 26个 无效关键词 美女 丑女 好书 3 个 有效全部关键词 23 个文本 有效总行数合计 211 行
请按任意键继续. . .
能不能将无效关键词用、分隔开来?例如:
无效关键词 美女、丑女、好书 3 个
另外
能不能把 echo %%i结果.TXT %%j行 也放到括号的外面也就是
)
)
括号的下面这里?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |