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

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

比如一个文件夹1里有许多文本文件1.txt,2.txt...,1.txt里有58个数据,2.txt里有118个数据...,将其全部统计出来,并将对应的文件名改为1-58.txt,2-118.txt...,请问如何实现?

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

评分人数

TOP

回复 2# terse

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

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

pause

TOP

回复 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
1

评分人数

TOP

  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 扩充到文件的大小
复制代码
我写了个,测试可以满足你的要求,增加了恢复功能

TOP

返回列表