bat批处理提取多个文本文件的倒数第二行并输出保存到ok.txt。诚心感谢帮忙。谢谢。

2025-03-10 19:52:50
推荐回答(2个)
回答1:

for /f "delims=" %%f in ('dir /a-d/s/b *.txt') do (
set file=%%~sf
call:fx
)
move OK.tmp OK.txt
pause
exit
:fx
for /f "delims=" %%a in (%file%) do (
set /a num =1
)
set /a num-=2
for /f "skip=%num% delims=" %%b in (%file%) do (
set txt=%%b
goto write
)
:write
echo %txt%>>OK.tmp
set num=0
goto :eof

回答2:

@echo off
for /f "delims=" %%i in ('dir /a-d /b *.txt') do (
set cnt=0
for /f "usebackq delims=" %%j in ("%%i") do set /a cnt+=1
set /a cnt-=2
call :sub %%i
)
exit
:sub
for /f "usebackq skip=%cnt% delims=" %%k in ("%~1") do echo,%%k>>ok.txt&goto :eof