Board logo

标题: [文本处理] [已解决]批处理如何批量提取txt文本文档中记录的数量? [打印本页]

作者: 小木瓜小土豆    时间: 2015-3-28 15:02     标题: [已解决]批处理如何批量提取txt文本文档中记录的数量?

如题,由原始数据几十甚至几百的txt文本,每个文本中都有很多行数字ID,现在想批处理实现目录下所有txt按照文本的名称提出内容ID的数量,并输出。原始资料特点总结如下:

(1)数字ID,以TXT文本存储;

(2)每一组数字为一个ID,均有数字组成

(3)可能存在空行(不知道怎么才能差出来,目视看不出来)

(4)文档名称由编号,编号之间没什么规律可循;

想一次提取每个文本文档中ID的数量,请教各位有没有好的办法,测试数据见附件,先行谢过了,thx a lot~
作者: pcl_test    时间: 2015-3-28 15:25

回复 1# 小木瓜小土豆
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
  4. set n=0
  5. for /f "delims=" %%b in ('type "%%a"') do set /a n+=1
  6. if "%%a" neq "统计.txt" echo,%%a --- !n!
  7. ))>"统计.txt"
复制代码

作者: 小木瓜小土豆    时间: 2015-3-28 16:21

回复 2# pcl_test

非常感谢,测试完成,输出的数据可以满足我想要的效果。大量工作数据处理,真实太实用了,非常感谢 ~
作者: DAIC    时间: 2015-3-28 22:14

回复 2# pcl_test


这样可以避免频繁执行 set /a n+=1
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for %%a in (*.txt) do (
  4.     set n=0
  5.     for /f "delims=" %%b in ('type "%%a" ^| findstr "[0-9]" ^| find /v /c ""') do (
  6.         set n=%%b
  7.     )
  8.     echo %%a --- !n!
  9. ))>"统计.log"
复制代码

作者: 小木瓜小土豆    时间: 2015-3-30 09:28

回复 5# DAIC
谢谢~回复已收到,非常感谢~




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2