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

これは、より高速に実行されるバッチ ソリューションです...

@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 に答える
1

unxutilsをインストールしてから、この質問に対する回答を参照してください... Windows はテキスト処理用に作られていません...

Windowsユーザー...

于 2012-11-13T12:28:28.290 に答える