我正在尝试编写一个批处理文件,该文件将在给定文本文件中提取行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
)
关于我哪里出错的任何想法?
答案 0 :(得分:2)
这是一个快速简单的纯批次解决方案
for /l %%a in (6000,1,6999) do (
more C:\file.txt +%%a >>C:\extracted.txt
)
答案 1 :(得分:1)
答案 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