找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25276|回复: 5

[文本处理] 批处理如何统计一个txt文本的非空白字符的数目/数量/个数/字数?

[复制链接]
发表于 2016-5-1 15:36:29 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-5-2 21:09 编辑

附件有两个bat,为什么输出0,0 如何修改
或者怎么实现这个功能?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. for /f "delims=" %%i in ('type %1') do (
  5. set str=%%i
  6. call s.bat !str!)
  7. echo **************!n!********************
  8. pause
复制代码
  1. @echo off  
  2. setlocal enabledelayedexpansion
  3. for /l %%j in (0 1 999) do (if "!str:~%%j,1!"=="" set plus=%%j &&goto :okk)
  4. :okk
  5. set /a n+=!plus!
复制代码

评分

参与人数 1PB -3 收起 理由
pcl_test -3 未按版规发帖

查看全部评分

发表于 2016-5-1 15:51:27 | 显示全部楼层
本帖最后由 bailong360 于 2016-5-1 16:50 编辑
  1. 1>1/* :
  2. @echo off
  3. more 5.txt|cscript -nologo -e:jscript "%~f0"
  4. pause
  5. exit
  6. */
  7. var n = 0;
  8. WScript.StdIn.ReadAll().replace(/[^\r\n ]/g, function(){++n})
  9. WScript.Echo(n)
复制代码
 楼主| 发表于 2016-5-1 15:58:30 | 显示全部楼层
本帖最后由 z@grr.la 于 2016-5-1 16:13 编辑

回复 2# bailong360

把5.txt改为%1吧,还有这个只能统计包括空格的字数,不能统计纯字数
能实现下统计纯字数吗?

------我的代码出了什么问题吗?为什么变量没有传递?
发表于 2016-5-2 04:44:19 | 显示全部楼层
  1. """
  2. python统计文本字符数量.py
  3. 2016年5月2日 04:21:44 codegay
  4. http://bbs.bathome.net/thread-40285-1-1.html
  5. """

  6. import sys
  7. import os

  8. if sys.argv.__len__()<2:
  9.     print("参数不能为空!")
  10.     print("使用方法:把文件拖到本程序上,或者在终端中执行:\n",sys.argv[0]+" 需要统计的文件名")
  11.     exit()
  12. if not os.path.exists(sys.argv[1]):
  13.     print("找不到目标文件")

  14. with open(sys.argv[1]) as f:
  15.     result=sum([''.join(r.split()).__len__() for r in f])
  16. print(sys.argv[1],"字符数:",result)
  17. input()


复制代码
发表于 2016-5-2 10:48:16 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. for /f "delims=" %%i in ('type %1') do (
  5.     set str=%%i
  6.     call :s
  7. )
  8. echo **************!n!********************
  9. pause
  10. exit
  11. :s
  12. for /l %%j in (0 1 999) do (if "!str:~%%j,1!"=="" set plus=%%j &&goto :okk)
  13. :okk
  14. set /a n+=!plus!
复制代码
发表于 2016-5-2 18:19:40 | 显示全部楼层
  1. //&cls&cscript -nologo -e:jscript "%~f0"<"文本.txt"&pause&exit
  2. WSH.echo(WSH.StdIn.ReadAll().match(/\S/g).length)
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 18:36 , Processed in 0.019835 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表