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

[文本处理] 批处理怎样截取文本倒数第三行的内容?

[复制链接]
发表于 2012-12-27 21:25:48 | 显示全部楼层 |阅读模式
有一系列.txt文本文件,行数不固定,怎么把每个文件的倒数第三行内容导出到一个文件中?
发表于 2012-12-27 21:42:34 | 显示全部楼层

  1. @echo off&setlocal enabledelayedexpansion
  2. (for %%a in (*.txt) do (
  3.    for /f "usebackq delims=" %%b in ("%%a") do (
  4.      set "str2=!str1!"
  5.      set "str1=!str!"
  6.      set "str=%%a"
  7.    )
  8.   if defined str2 echo,!str2!&set "str2="
  9. ))>new.txt
  10. start new.txt
复制代码
发表于 2012-12-27 22:04:15 | 显示全部楼层
附取文本倒数第N行的两种方法:
1、

  1. @echo off&setlocal enabledelayedexpansion
  2. (for /l %%a in (1,1,100) do echo %%a)>a.txt
  3. set /a n=!random!%%100+1
  4. for /f "delims=" %%a in (a.txt) do (
  5.   for /l %%b in (%n%,-1,1) do (
  6.     if %%b neq 1 (
  7.       set /a a=%%b-1
  8.       for %%c in (!a!) do set "str%%b=!str%%c!"
  9.       ) else (
  10.       set "str%%b=%%a"
  11.     )
  12.   )
  13. )
  14. echo 取得a.txt倒数第%n%行的值为:!str%n%!
  15. pause>nul
复制代码
2、

  1. @echo off&setlocal enabledelayedexpansion
  2. (for /l %%a in (1,1,100) do echo %%a)>a.txt
  3. for /f "delims=" %%a in (a.txt) do set /a m+=1&set "_!m!=%%a"
  4. set /a n=!random!%%100+1,m-=n-1
  5. echo 取得a.txt倒数第%n%行的值为:!_%m%!
  6. pause>nul
复制代码
发表于 2012-12-27 23:35:13 | 显示全部楼层
  1. @echo off
  2. set n=0
  3. for /f %%a in (a.txt) do (
  4.     set /a n+=1
  5. )
  6. echo %n%
  7. set /a n-=3
  8. call :getLine %n%
  9. pause
  10. goto :eof

  11. :getLine
  12. for /f "skip=%1 delims=" %%a in (a.txt) do (
  13.     echo,%%a
  14.     goto :eof
  15. )
复制代码
发表于 2012-12-28 00:28:34 | 显示全部楼层

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /b /a-d *.TXT') do (
  3.     sort /+8192 "%%i"|more +2 >_ten.t
  4.     set /pstr=<_ten.t
  5.     >>_temp.txt echo;!str!
  6. )
  7. del _ten.t&pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 20:30 , Processed in 0.018063 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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