Board logo

标题: [文本处理] [已解决]如何用批处理提取文本后面1000行数据? [打印本页]

作者: xptool    时间: 2010-11-19 20:51     标题: [已解决]如何用批处理提取文本后面1000行数据?

本帖最后由 xptool 于 2011-10-12 19:45 编辑

如何用批处理提取文本后面1000行数据
作者: broly    时间: 2010-11-20 11:16

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (1.txt) do (set/a n+=1&set n!n!=%%i)
  3. if !n! lss 1000 (echo 不足1000行 & goto lp1) else (echo 超过1000 & goto
  4. lp2)
  5. :lp1
  6. for /l %%i in (1 1 !n!) do echo !n%%i!>>2.txt
  7. pause&exit
  8. :lp2
  9. set/a m=!n!-1000+1
  10. for /l %%i in (%m% 1 !n!) do echo !n%%i!>>2.txt
  11. pause
复制代码

作者: CUer    时间: 2010-11-20 17:17

  1. tail -1000 1.txt | more >2.txt
复制代码

作者: xptool    时间: 2010-11-20 22:27

broly

还是不成功
作者: canyuexiaolang    时间: 2010-11-20 22:34

>a.txt More +1000 1.txt
1.txt是那个要读取的文件
作者: 随风    时间: 2010-11-20 22:38

先获取总行数,再用skip 多余的行,
需注意空行。
作者: canyuexiaolang    时间: 2010-11-20 22:44

我是.....我也理解错了。楼主的意思到底是啥额
作者: broly    时间: 2010-11-20 22:59     标题: 回复 5楼 的帖子

哪里不行了?要说清楚
作者: hack21century    时间: 2010-11-24 23:41     标题: 三行搞定!!

@echo off
for /f "skip=1000" %%i in (1.txt) do echo %%i
pause
试试看!!!
作者: batman    时间: 2010-11-25 08:51

  1. @echo off
  2. for /f "delims=:" %%a in ('findstr /n .* a.txt' ) do set num=%%a
  3. set /a num-=1000
  4. (for /f "skip=%num% delims=" %%a in (a.txt) do echo %%a)>b.txt
  5. start b.txt
复制代码





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