file - 如何在批处理脚本中读取文件的最后两行

标签 file batch-file batch-processing

我有一个 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/

相关文章:

linux - 释放函数在另一个进程上下文中被调用

node.js - 乔基达尔 : onchange event for a file is possibly triggered to fast

batch-file - 如何使用通过批处理文件调用的程序打开非特定文件?

powershell - 如何获得在引导时运行的 CHKDSK 的结果?

windows - 'IF EXIST'如何批量使用

java - JobOperator 无法实例化

python - 在 Python 中通过 TCP 套接字发送文件

android - 我应该在 Android 中将文件存储在哪里?

batch-file - 在 Windows 批处理文件中使用 SET 变量

java - Spring Batch 应用程序结构双源数据