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

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

[复制链接]
发表于 2013-8-18 23:00:48 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-8-9 10:39 编辑

BAT怎样统计文件夹下txt文档的行数并重命名文件?
我想统计文件夹下及子文件夹下所有txt文档的行数并重命名文件
确切地说,我想统计文本除了第一行其他所有行但不包含空行,假设a.txt统计出的行数是num,然后将该文件重命名为anum.txt,求助啊,折腾了好久没弄出了
发表于 2013-8-19 00:19:25 | 显示全部楼层
  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
复制代码
发表于 2013-8-19 01:59:31 | 显示全部楼层
调用第三方工具 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. )
复制代码
 楼主| 发表于 2013-8-19 19:15:49 | 显示全部楼层
回复 2# terse

怎么找不到重命名的文件?
 楼主| 发表于 2013-8-19 19:16:33 | 显示全部楼层
回复 3# CrLf

第三方工具不懂啊
 楼主| 发表于 2013-8-19 19:42:00 | 显示全部楼层
根据上面的启发写出来了,谢谢!
  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
复制代码
发表于 2013-8-19 21:08:29 | 显示全部楼层
回复 4# cloudinamoy
去掉 后面 echo 即可
 楼主| 发表于 2013-8-19 21:34:57 | 显示全部楼层
回复 7# terse


    哦,是哦,怎么没看出来,谢啦~
发表于 2013-8-19 22:08:35 | 显示全部楼层
回复 5# cloudinamoy


    不懂没关系,下载之后放到system32文件夹下面就能直接调用了。
 楼主| 发表于 2013-8-20 13:10:56 | 显示全部楼层
回复 9# gawk


    哦,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 06:52 , Processed in 0.031285 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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