0

我正在尝试编写一个批处理文件,它将在给定的文本文件中提取第 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
)

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

4

3 回答 3

2

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

for /l %%a in (6000,1,6999) do (
more C:\file.txt +%%a >>C:\extracted.txt
)
于 2012-11-13T12:42:57.277 回答
1

您应该安装unxutils然后查看问题的答案... Windows 不适合文本处理...

一个 Windows 用户...

于 2012-11-13T12:28:28.290 回答
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
于 2012-11-13T16:55:11.523 回答