我有一个 Java 程序,它在文件的最后两行中附加新的构建信息。 如何在批处理文件中读取它们?
最佳答案
这段代码可以解决问题...
for /F "delims=" %%a in (someFile.txt) do (
set "lastButOne=!lastLine!"
set "lastLine=%%a"
)
echo %lastButOne%
echo %lastLine%
编辑:添加完整的 TAIL.BAT
可以修改此方法以获得更多的行数,这可以由参数指定。下面的文件是tail.bat:
@echo off
setlocal EnableDelayedExpansion
rem Tail command in pure Batch: Tail.bat filename numOfLines
rem Antonio Perez Ayala
for /F "delims=" %%a in (%1) do (
set /A i=%2, j=%2-1
for /L %%j in (!j!,-1,1) do (
set "lastLine[!i!]=!lastLine[%%j]!
set /A i-=1
)
set "lastLine[1]=%%a"
)
for /L %%i in (%2,-1,1) do if defined lastLine[%%i] echo !lastLine[%%i]!
第二次编辑:添加了新版本的 TAIL.BAT
下面的版本效率更高:
@echo off
setlocal EnableDelayedExpansion
rem Tail command in pure Batch, version 2: Tail.bat filename numOfLines
rem Antonio Perez Ayala
set /A firstTail=1, lastTail=0
for /F "delims=" %%a in (%1) do (
set /A lastTail+=1, lines=lastTail-firstTail+1
set "lastLine[!lastTail!]=%%a"
if !lines! gtr %2 (
set "lastLine[!firstTail!]="
set /A firstTail+=1
)
)
for /L %%i in (%firstTail%,1,%lastTail%) do echo !lastLine[%%i]!
关于file - 如何在批处理脚本中读取文件的最后两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27416341/