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

[文本处理] 批处理如何统计特定行的行数?

附件文件内容中“DESCRIPTION=”下面“DATA0=762.2642,1636.842_764.2941,1638.931_0”等这样的比较长的行是需要统计计数的,想要得到一个文本中类似这样的长行到底有多少行,如果文件中没有这样的长行就计为0.还有因为[B|DOT]或者[W|DOT]或[G25|DOT]或[G50|DOT] “DESCRIPTION=”下面的长行数值坐标总是一样的,一般是4倍关系,看这个能否用得到。
1

评分人数

回复 10# GNU
我也是论坛到处查查看看,然后简单理解下,凑起来的,没啥基础,感觉能实现预期的一部分,就贴出来请教了,毕竟我观察了下文本存在长短不一的情况,可以从这方面下手试试,虽然这个方案针对预期可能并不是最优的,但条条大路通北京嘛。因为以前学过一点C语言之类的,if...else if...,但我写入代码中就提示不是内部命令,批处理这块刚接触,基础性的东西还蛮多的

TOP

回复 8# 雷神WUWU


这个代码不像是解决顶楼的问题,你发过其它帖子是吗?
链接发出来吧,我过去看看。

TOP

回复 7# gawk
补充一下,你的代码不错。就是我一直纠结我先前弄得一个方案的代码,所以请教下

TOP

本帖最后由 雷神WUWU 于 2016-7-12 23:55 编辑

回复 7# gawk
刚网上查资料进到这个网站,不是太熟悉。
@echo off&
for /f "delims=" %%a in ('dir /a-d/b *.txt') do (
    setlocal enabledelayedexpansion
    for /f "delims=" %%b in ('type "%%a"') do (
        set /a num+=1
        set "str=%%b"        
        if !num! geq 1 (
          if "!str:~40!" neq "" set /a count+=1
        )
    )
    if defined keys echo;%%~na,!count!>>"%~dp0Result.csv"
    endlocal
)
pause
我弄了很久这个,那个0就是弄不好,要么全被我弄成0了

TOP

回复 6# 雷神WUWU


貌似论坛没有规定太菜的人不允许发帖啊
我应该可以算得上热心人之一,能帮上的一定帮,只是不习惯私信讨论技术问题。
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 5# gawk
好吧,因为太菜,就想找几个热心人帮下忙,呵呵...

TOP

回复 1# 雷神WUWU


    有问题请直接在论坛发帖讨论吧,不用给我发私信,我看到帖子一样会回复的,谢谢。
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  4.     set n=0
  5.     for /f %%j in ('type "%%i" ^| findstr /b "DATA[0-9][0-9]*="') do (
  6.         set /a n+=1
  7.     )
  8.     echo %%i: !!n!
  9. )
  10. pause
复制代码
1

评分人数

Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 2# pcl_test
能不能给个通用的啊?文件不止一个,有的都没有“DATA0=762.2642,1636.842_764.2941,1638.931_0”那样的长行

TOP

  1. @echo off
  2. set n=0
  3. for /f %%a in ('findstr /b "DATA[0-9][0-9]*=" "T566U161BC08.txt"') do set /a n+=1
  4. echo;%n%
  5. pause
复制代码

TOP

返回列表