标题: [文本处理] 批处理如何获取指定文件夹下每个txt文本除了第一行和空白行外的行数并添加到文件名里 [打印本页]
作者: cloudinamoy 时间: 2013-8-18 23:00 标题: 批处理如何获取指定文件夹下每个txt文本除了第一行和空白行外的行数并添加到文件名里
本帖最后由 pcl_test 于 2016-8-9 10:39 编辑
BAT怎样统计文件夹下txt文档的行数并重命名文件?
我想统计文件夹下及子文件夹下所有txt文档的行数并重命名文件
确切地说,我想统计文本除了第一行其他所有行但不包含空行,假设a.txt统计出的行数是num,然后将该文件重命名为anum.txt,求助啊,折腾了好久没弄出了
作者: terse 时间: 2013-8-19 00:19
- @echo off
- for /f "delims=" %%i in ('dir /b /a-d /s *.txt') do (
- (more +1 "%%i" |findstr . |find /v /c "")>$
- for /f %%j in ($) do echo ren "%%i" %%~ni%%j%%~xi
- )
- del $
- pause
复制代码
作者: CrLf 时间: 2013-8-19 01:59
调用第三方工具 sed 和 uniq:- @echo off
- for /f "tokens=1*" %%a in ('findstr /s /n . *.txt 2>nul ^| sed "/[^:]*:1:/d;s/:.*//" ^| uniq -c') do (
- ren "%%b" "%%~nb%%a.txt"
- )
复制代码
作者: cloudinamoy 时间: 2013-8-19 19:15
回复 2# terse
怎么找不到重命名的文件?
作者: cloudinamoy 时间: 2013-8-19 19:16
回复 3# CrLf
第三方工具不懂啊
作者: cloudinamoy 时间: 2013-8-19 19:42
根据上面的启发写出来了,谢谢!- @echo off
-
- setlocal ENABLEDELAYEDEXPANSION
-
- @set filepath=G:\批处理\20130819
-
- for /r %filepath% %%a in (*.txt) do (
-
- @set /a num=0
- for /f " skip=1 " %%b in (%%a) do (set /a num+=1)
- ren %%a %%~na!num!%%~xa
-
- )
-
- pause
复制代码
作者: terse 时间: 2013-8-19 21:08
回复 4# cloudinamoy
去掉 后面 echo 即可
作者: cloudinamoy 时间: 2013-8-19 21:34
回复 7# terse
哦,是哦,怎么没看出来,谢啦~
作者: gawk 时间: 2013-8-19 22:08
回复 5# cloudinamoy
不懂没关系,下载之后放到system32文件夹下面就能直接调用了。
作者: cloudinamoy 时间: 2013-8-20 13:10
回复 9# gawk
哦,谢谢!
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |