簡體   English   中英

將Windows批處理中文件的特定行設置為變量

[英]Set into a variable a specific line from a file in Windows batch

我正在嘗試從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中。 我確定實現此目標的方法是使用/ f skip =%begin_line,但我做不到。

任何想法?

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

伊萬

我不確定我是否理解你的問題。 您正在搜索包含子字符串的第一行。 然后,您要將下一行存儲在變量中。 那是對的嗎? 如果是,則代碼如下:

@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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM