Text 通过批处理脚本将最后两行文本指定为变量

Text 通过批处理脚本将最后两行文本指定为变量,text,batch-file,Text,Batch File,嗨,我有一个文本文件,其中我需要使用最后两行作为批处理脚本中的两个变量。例如: file.txt包含: Release2010 Release2011 Release2013 我需要var1=Release2011和var2=Release2013。文件的长度会有所不同,但我始终需要最后两行 谢谢你的帮助 这里有一种不启用延迟扩展的方法 @ECHO OFF FOR /F %%A IN (InFile.txt) DO ( CALL :SetSecondLastLine SET Las

嗨,我有一个文本文件,其中我需要使用最后两行作为批处理脚本中的两个变量。例如:

file.txt包含:

Release2010
Release2011
Release2013
我需要var1=Release2011和var2=Release2013。文件的长度会有所不同,但我始终需要最后两行


谢谢你的帮助

这里有一种不启用延迟扩展的方法

@ECHO OFF
FOR /F %%A IN (InFile.txt) DO (
   CALL :SetSecondLastLine
   SET LastLine=%%A
   )
ECHO.SecondLastLine=%SecondLastLine%
ECHO.LastLine=%LastLine%
pause
GOTO :eof

:SetSecondLastLine
SET SecondLastLine=%LastLine%
GOTO:EOF
你可以试试这个:

@ECHO OFF &SETLOCAL ENABLEDELAYEDEXPANSION
FOR /f "delims=" %%a IN (file) DO (
    SET "var2=!var1!"
    SET "var1=%%a"
)
ECHO(var1: %var1%
ECHO(var2: %var2%

没有延迟扩展的情况下也一样:

@ECHO OFF &SETLOCAL
FOR /f "delims=" %%a IN (file) DO (
    CALL SET "var2=%%var1%%"
    SET "var1=%%a"
)
ECHO(var1: %var1%
ECHO(var2: %var2%

谢谢你们两位。我真的很感激你的帮助!