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

[文本处理] 批处理如何获取指定文件夹下每个txt文本除了第一行和空白行外的行数并添加到文件名里

本帖最后由 pcl_test 于 2016-8-9 10:39 编辑

BAT怎样统计文件夹下txt文档的行数并重命名文件?
我想统计文件夹下及子文件夹下所有txt文档的行数并重命名文件
确切地说,我想统计文本除了第一行其他所有行但不包含空行,假设a.txt统计出的行数是num,然后将该文件重命名为anum.txt,求助啊,折腾了好久没弄出了

  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /a-d /s *.txt') do (
  3. (more +1 "%%i" |findstr . |find /v /c "")>$
  4. for /f %%j in ($) do echo ren "%%i" %%~ni%%j%%~xi
  5. )
  6. del $
  7. pause
复制代码

TOP

调用第三方工具 sed 和 uniq:
  1. @echo off
  2. for /f "tokens=1*" %%a in ('findstr /s /n . *.txt 2>nul ^| sed "/[^:]*:1:/d;s/:.*//" ^| uniq -c') do (
  3.    ren "%%b" "%%~nb%%a.txt"
  4. )
复制代码

TOP

回复 2# terse

怎么找不到重命名的文件?

TOP

回复 3# CrLf

第三方工具不懂啊

TOP

根据上面的启发写出来了,谢谢!
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. @set filepath=G:\批处理\20130819
  4. for /r %filepath% %%a in (*.txt) do (
  5. @set /a num=0
  6. for /f " skip=1 " %%b in (%%a) do (set /a num+=1)
  7. ren %%a  %%~na!num!%%~xa
  8. )
  9. pause
复制代码

TOP

回复 4# cloudinamoy
去掉 后面 echo 即可

TOP

回复 7# terse


    哦,是哦,怎么没看出来,谢啦~

TOP

回复 5# cloudinamoy


    不懂没关系,下载之后放到system32文件夹下面就能直接调用了。
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 9# gawk


    哦,谢谢!

TOP

返回列表