提取文本文件的部分

时间:2012-11-13 12:25:47

标签: text batch-file

我正在尝试编写一个批处理文件,该文件将在给定文本文件中提取行6000到6999。从谷歌搜索我已经得到了以下代码 - 但是这给了我一个空白的输出文件。

@echo off 
SetLocal EnableDelayedExpansion
type nul > nodedata.txt
set StartText=6000
set EndText=7000
set Flag=0
for /f "tokens=* delims=" %%a in ('type out.txt') do (
if /i "%StartText%" EQU "%%a" (set Flag=1) 
if /i "%EndText%" EQU "%%a" (set Flag=0) 
if !Flag! EQU 1 echo %%a >> nodedata1.txt
)

关于我哪里出错的任何想法?

3 个答案:

答案 0 :(得分:2)

这是一个快速简单的纯批次解决方案

for /l %%a in (6000,1,6999) do (
more C:\file.txt +%%a >>C:\extracted.txt
)

答案 1 :(得分:1)

您应该安装unxutils,然后查看this问题的答案... Windows不是用于文本处理...

Windows用户......

答案 2 :(得分:1)

这是一个运行得更快的批处理解决方案......

@echo off
SetLocal EnableDelayedExpansion
set count=0
(for /F "skip=5999 delims=" %%a in (out.txt) do (
   echo %%a
   set /A count+=1
   if !count! equ 1000 goto endLoop
   )
) > nodedata1.txt
:endLoop