在Windows批处理

时间:2017-09-26 09:59:12

标签: windows batch-file echo

我试图从Windows批处理文件中获取一行但没有成功。我已经尝试了几种方法来做到这一点,我不是专家,这对我来说是不可能的。要读取的数字行以计算方式计算:

set "file=C:\myfile.txt"

REM Looking for line number where the segment "<segment>" is.
for /f "tokens=1 delims=:" %%L in ('findstr /n "<segment>" %file%') do ( 
    set begin_line=%%L
)

echo %begin_line%

所以我试图读取%begin_line%+ 1行并将其存储到var中。 我确定实现这一目标的方法是使用 for / f skip =%begin_line ,但我无法做到。

有什么想法吗?

我希望我所要求的是可能的。

伊万

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解你的问题。您正在搜索包含子字符串的第一行。然后,您希望将 next 行存储在变量中。那是对的吗?如果是,请输入以下代码:

@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET inputFile=C:\myfile.txt
SET fount=0
FOR /F "tokens=*" %%F IN (%inputFile%) DO (
    IF !found!==1 (
        SET foundLine=%%F
        GOTO BREAK
    )
    SET line=%%F
    SET line=!line:^<segment^>=!
    IF NOT !line!==%%F SET found=1
)
:BREAK
ECHO !foundLine!
PAUSE