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

[文本处理] 批处理怎样计算出每个文本里面有多少行?

[复制链接]
发表于 2018-9-14 02:31:51 | 显示全部楼层 |阅读模式
有几万个文本,但是想知道它每个文本里面有多少行

比如文本是
13国_*****.txt   有80行
46国_*****.txt   有560行
123国_*****.txt   有990行
153国_*****.txt   有4行
193国_*****.txt   有30行


批处理后出现一个文本里面写出每个文本里面有多少行,只要193国_*****.txt  前面这个193国_**个

处理后:
13国_80个
46国_560个
123国_990个
153国_4个
193国_30个
发表于 2018-9-14 09:05:58 | 显示全部楼层
会计算单个文件多少行吗?选个你喜欢的代码试试看能否得到正确的结果:
http://bbs.bathome.net/thread-474-2-1.html#pid28474
 楼主| 发表于 2018-9-14 17:26:05 | 显示全部楼层
[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost
 楼主| 发表于 2018-9-14 23:01:50 | 显示全部楼层
回复 2# Batcher


    我这个是很多文本的,你呢些都是单文本的
 楼主| 发表于 2018-9-15 06:43:17 | 显示全部楼层
回复 2# Batcher


    您好,您那个连接是单文本处理的,我这是一个文件夹里面几百个文本,没办法处理到
 楼主| 发表于 2018-9-15 23:32:03 | 显示全部楼层
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
 楼主| 发表于 2018-9-15 23:32:32 | 显示全部楼层

批处理怎样计算每个文本有多少行?

有几万个文本,但是想知道它每个文本里面有多少行

比如文本是
13国_*****.txt   有80行
46国_*****.txt   有560行
123国_*****.txt   有990行
153国_*****.txt   有4行
193国_*****.txt   有30行


批处理后出现一个文本里面写出每个文本里面有多少行,只要193国_*****.txt  前面这个193国_**个

处理后:
13国_80个
46国_560个
123国_990个
153国_4个
193国_30个

评分

参与人数 1PB -4 收起 理由
pcl_test -4 勿重复发帖

查看全部评分

发表于 2018-9-16 00:09:28 | 显示全部楼层
  1. @echo off

  2. for %%i in (*_*.txt) do (       
  3.         setlocal enabledelayedexpansion
  4.         set num=0
  5.         for /f "tokens=1 delims=:" %%x in ('findstr /n .* %%i') do set "num=%%x"       
  6.         set "str=%%i" & set "ext=%%~xi"
  7.         set "suffix=!str:*_=!"
  8.         set "prefix=!str:!suffix!=!"
  9.         ren "!str!" "!prefix!!num!!ext!个"       
  10.         endlocal
  11. )
复制代码
回复 1# z1366870839
没测试过。你试试吧。
 楼主| 发表于 2018-9-16 06:43:30 | 显示全部楼层
回复 2# ai20110304


    您好,您这个是在原文件直接改为数字,不是生成新的文本,然后列出来,也没显示有多少国~不过还是谢谢你
发表于 2018-9-16 08:37:09 | 显示全部楼层
回复 3# z1366870839


    哦哦。没看到把相应的文件生成在新文件中显示。以为直接重命名
发表于 2018-9-16 08:50:52 | 显示全部楼层
  1. for %%i in (*_*.txt) do (       
  2.         setlocal enabledelayedexpansion
  3.         set num=0
  4.         for /f "tokens=1 delims=:" %%x in ('findstr /n .* %%i') do set "num=%%x"       
  5.         set "str=%%i" & set "ext=%%~xi"
  6.         set "suffix=!str:*_=!"
  7.         call,set "prefix=%%str:!suffix!=%%"
  8.         ::ren "!str!" "!prefix!!num!!ext!个"       
  9.         echo;!prefix!!num!个 >>list.txt
  10.         endlocal
  11. )
复制代码
回复 4# ai20110304

你再试试。现在是不是你想要的格式。
 楼主| 发表于 2018-9-17 00:10:47 | 显示全部楼层
回复 5# ai20110304


    您好,您这个能重新生成文本了,但是识别不出来里边有多少行
发表于 2018-9-17 20:45:07 | 显示全部楼层
回复 6# z1366870839


    我这边测试都能啊。。。是不是你运行的位置不对
发表于 2018-9-17 20:46:19 | 显示全部楼层
回复 6# z1366870839

在脚本代码开头,添加  一条语句   cd /d %~dp0
    把脚本放在你要处理的位置。
 楼主| 发表于 2018-9-17 23:26:21 | 显示全部楼层
回复 8# ai20110304


    您好,这样还是不行呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 19:07 , Processed in 0.022020 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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