0

我正在尝试编写批处理文件代码来检查文本文件中是否存在给定的行。如果它存在,我想将该行之后的特定行(取决于行号)放入变量中。任何人都可以帮助我吗?

例如我有文本文件...
EX1
EX2
Ex3
EX4
Ex5

现在我想搜索天气 Ex3 是否存在于批处理文件中。如果它存在,我希望 Ex5(之后的第 2 行)变为变量。

提前致谢

4

1 回答 1

1

这适用于我的盒子:

@echo off
SET searchterm=Ex3
SET /a lineafter=2
SET filename=lst.txt
:: --------------
SETLOCAL ENABLEDELAYEDEXPANSION
SET /a c=0
FOR /F "delims=" %%i IN (%filename%) DO (
  if !c! GTR 0 (
    IF %lineafter% EQU !c! (
      SET result=%%i
      GOTO :linefound
    )
    SET /a c=!c! + 1
  ) ELSE (
    IF "%%i"=="%searchterm%" (
      SET /a c=1
    )
  )
)
echo No result
GOTO :EOF
:linefound
echo Result: %result%

只需在第 2-4 行输入您的值。

于 2012-08-31T09:14:34.707 回答