Board logo

标题: [文本处理] 【已解决】批处理如何统计一个文件里有多少个数据,并写入文件名? [打印本页]

作者: ysrr2011    时间: 2014-7-24 10:41     标题: 【已解决】批处理如何统计一个文件里有多少个数据,并写入文件名?

比如一个文件夹1里有许多文本文件1.txt,2.txt...,1.txt里有58个数据,2.txt里有118个数据...,将其全部统计出来,并将对应的文件名改为1-58.txt,2-118.txt...,请问如何实现?
作者: terse    时间: 2014-7-24 11:59

条件  文件不含空行  文件名不含空格
  1. @echo off
  2. for /f "tokens=1*delims=:- " %%i in ('FIND /c /v "" *.txt') do echo ren %%i %%~ni-%%j%%~xi
  3. pause
复制代码

作者: ysrr2011    时间: 2014-7-24 12:30

回复 2# terse

修改了一下,去了一个echo,可以运行了,但必须放在文件夹1下,可以加入路径吗?

    @echo off
for /f "tokens=1*delims=:- " %%i in ('FIND /c /v "" *.txt') do ren %%i %%~ni-%%j%%~xi

pause
作者: DAIC    时间: 2014-7-24 13:14

回复 3# ysrr2011


@echo off
cd /d "C:\test"
for /f "tokens=1*delims=:- " %%i in ('FIND /c /v "" *.txt') do echo ren %%i %%~ni-%%j%%~xi
pause
作者: miskel    时间: 2014-7-24 14:53

  1. @echo off&setlocal enabledelayedexpansion
  2. ::获取资料夹内TXT文件内数据量并改名
  3. color 1f
  4. set /p sr=请选择1(修改)2(恢复):
  5. if %sr%==1 goto :gg
  6. if %sr%==2 goto :hh
  7. goto :eof
  8. :gg
  9. if exist 文件名.log del 文件名.log
  10. for /f "delims=" %%I in ('dir /a-d /b *.TXT') do (
  11. set /a N+=1,H=10000+N
  12. set "H=!H:~-2!"
  13. set /a M=0
  14. for /f "delims=" %%K in (%%I) do (
  15. set /a M+=1
  16. )
  17. echo 文件%%~nI内数量为!M!个
  18. echo %%I^|%%~nI-!M!.txt>>文件名.log
  19. ren %%I %%~nI-!M!.txt
  20. )
  21. goto :end
  22. :hh
  23. for /f "delims=" %%i in ('dir /a-d/b *.txt') do (
  24. for /f "tokens=1 delims=^|" %%f in ( 文件名.log ) do (
  25. ren %%i %%f
  26. )
  27. )
  28. :end
  29. echo.修改完成!4秒后退出...
  30. ping -n 4 127.1>nul
  31. ::简要说明:对于变量%0~%9及for里使用的%%i这样的变量,可以有以下的语法:
  32. ::     ~I         - 删除任何引号("),扩充 %I
  33. ::     %%~fI        - 将 %%I 扩充到一个完全合格的路径名
  34. ::     %%~dI        - 仅将 %%I 扩充到一个驱动器号
  35. ::     %%~pI        - 仅将 %%I 扩充到一个路径
  36. ::     %%~nI        - 仅将 %%I 扩充到一个文件名
  37. ::     %%~xI        - 仅将 %%I 扩充到一个文件扩展名
  38. ::     %%~sI        - 扩充的路径只含有短名
  39. ::     %%~aI        - 将 %%I 扩充到文件的文件属性
  40. ::     %%~tI        - 将 %%I 扩充到文件的日期/时间
  41. ::     %%~zI        - 将 %%I 扩充到文件的大小
复制代码
我写了个,测试可以满足你的要求,增加了恢复功能




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