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

[文本处理] 批处理如何统计文本每行内容的字符个数和全文字符个数?

本帖最后由 pcl_test 于 2016-9-8 11:15 编辑

想实现下面的功能!不知道行不!我想了半天就是想不出来!
有文本a.txt:(文本内容会变所以请帮忙把代码中要注意的地方标下)
12345
12345678
1234
123
1
2
3

1:查询第一行共有多少字符?(无空格)
2:查询第 三行有多少字符?(无空格)
3:查询全文共有多少字符?(无空格)
-------------------------------------------------请把代码中搞顶空格的地方用颜色区分下!我好学习学习-----
4:注意:如果内容第1行或第2行或第N行带有空格或多个空格该如何做!(注意别把空格给忽略了他也要算)
--------------------------------------------------------------------------------请帮忙写代码!
我察看的方法用批处理我写不出来呵呵!
我用的命令
findstr /o . a.txt

[ 本帖最后由 jellyhk 于 2008-11-16 06:26 编辑 ]
本人已死!不用联系!~
要联系下来联系!~~

如果全是半角字符,可以直接用%%~za - (总行数*2) 获取总字符数。
findstr /o的用法论坛有太多了,搜索了吗,请善用搜索功能。

[ 本帖最后由 pusofalse 于 2008-11-15 19:45 编辑 ]
心绪平和,眼藏静谧。

TOP

看了楼主的几个求助贴均没有将问题描述清楚,还请楼主在发贴求助时多注意下文字上的组织了。
友情提示:请注意错别字
***共同提高***

TOP

去空行

FOR /f "token=*" %%A in (a.txt) do echo %%A

去空格
SET "VAR=%VAR: =%"

TOP

回复 4楼 的帖子

FOR /f "token=*" %%A in (a.txt) do echo %%A
会去掉行首空格,应该用
FOR /f "delims=" %%A in (a.txt) do echo %%A
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

我想各位可能没理解我的意思!
我的意思是想知道有多少字符!
2楼的“半角字符”不懂是什么?
3楼的我把内容改了下。
4楼的搞错我意思了!我不是想去掉空格!是查询字符有多少。
本人已死!不用联系!~
要联系下来联系!~~

TOP

回复 6楼 的帖子

google搜索"什么是半角字符"
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

蛾!
我看了下什么是半角字符!
我的这个是半角字符!
请帮忙回答下!6楼的问题
本人已死!不用联系!~
要联系下来联系!~~

TOP

我顶!
难道就没人帮忙?
本人已死!不用联系!~
要联系下来联系!~~

TOP

不是没人帮忙,只是批处理做这种事的效率太低了,没人愿做,我就试试看吧,不知道楼主是不是这个意思
不支持特殊字符...
  1. @echo off&setlocal enabledelayedexpansion
  2. echo.&set /p in=请拖入文件:&echo.&echo 正在处理文件,请稍候...
  3. for /f "delims=" %%a in ('type %in%') do (
  4.    set "str=%%a"&set "m=0"
  5.    set /a "n+=1"
  6.    set "#!n!=%%a"
  7.    call :count_
  8. )
  9. :agn
  10. set "choi="
  11. echo.&set/p choi=请输入要查找的行(回车显示全文字符数):
  12. if not defined choi (echo %all%&echo.&echo 按任意键退出...&pause>nul&goto :eof)
  13. if %choi% gtr %n% echo 文件没有那么多行^^^!&goto :agn
  14. echo.&echo 第%choi%行有!_%choi%!个字符,内容如下:&echo !#%choi%!
  15. goto :agn
  16. :count_
  17. if "!str!"=="" (
  18.    set /a "all=all+m"&set "_%n%=%m%"&goto :eof
  19. ) else (
  20.    set /a "m+=1"
  21.    set "str=!str:~1!"
  22.    goto :count_
  23. )
复制代码

TOP

本帖最后由 pcl_test 于 2016-9-8 11:47 编辑
  1. #*第三方http://www.bathome.net/s/tool/index.html?key=gawk
  2. #*&cls&gawk -f "%~f0" "文本.txt">con&pause&exit
  3. BEGIN{
  4.     space=1;  #设置是否统计空格和制表符,0为不统计,1为统计
  5.     s=0;
  6. }
  7. {
  8.     if(!space){
  9.         gsub(/[[:space:]]+/,"");
  10.         a=length($0);s+=a;print "["a"]"$0;
  11.     }else{
  12.         a=length($0);s+=a;print "["a"]"$0;
  13.     }
  14. }
  15. END{print (space?"":"不")"包括空格、制表符总计:"s"个字符"}
复制代码

TOP

回复 11# pcl_test
代码速度很快哦。但是,怎么输出到文本呢?

TOP

回复 12# WBATW


    第二行
#*&cls&gawk -f "%~f0" "文本.txt">result.txt&pause&exit

TOP

返回列表