0

ループで取得した行番号に基づいて、行をファイルに抽出する必要があります。実際、最初の FOR コマンドから 7 行目を取得しました。これまでのところ非常にうまくいっているので、この行を myfile.txt に読み込む必要があります。読み取り操作は 2 番目の FOR ループで実行されます。出力「result.txt」が空になるため、この手順は機能しません

for /f "tokens=1* delims=:" %%a in (lines.txt) do set line=%%a& goto breakFor "%line%"

:breakFor
echo.%line%
for /f "tokens=*" %%a in ('findstr /n .* "myfile.txt"') do if "%%a"=="%1" set line=%%i
echo.%line%>result.txt

これは myfile.txt と lines.txt の一部です

lines.txt
7:I=output7
515:I=output515
837:I=output837
851:I=output851

myfile.txt is made of lines of text (I1,I2,I3,...)
I1=some text....
I2=text...

理由を教えてください。それを修正するのに役立ちますか? ありがとう

4

2 に答える 2

1

これを試して、出力を見てください:

@echo off &setlocal
set "line=test"
goto breakFor "%line%"
:breakFor
echo "%~1"
于 2013-06-11T22:20:22.697 に答える