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

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

本帖最后由 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!
复制代码
1

评分人数

本帖最后由 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)
复制代码

TOP

本帖最后由 z@grr.la 于 2016-5-1 16:13 编辑

回复 2# bailong360

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

------我的代码出了什么问题吗?为什么变量没有传递?

TOP

  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()
复制代码
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

  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!
复制代码

TOP

  1. //&cls&cscript -nologo -e:jscript "%~f0"<"文本.txt"&pause&exit
  2. WSH.echo(WSH.StdIn.ReadAll().match(/\S/g).length)
复制代码

TOP

返回列表