@echo off
FOR /F "usebackq tokens=3* delims= " %%i in (`find /C " " %2`) do set total1=%%i
FOR /F "usebackq tokens=3* delims= " %%i in (`find /V /C " " %2`) do set total2=%%i
set /A total=%total1%+%total2%
IF "%1"=="-f" (
set /A pos=%total%-6
more +%pos% %2
goto begin
)
set /A t=-%1
set /A pos=%total%-%t%
IF %total% GEQ %t% (
more +%pos% %2
) ELSE (
echo toltal line is: %total%
echo press any key show %2 content.
pause>nul
more %2
)
IF "%1"=="-f" (
:begin
set /A totalpre=total
timeout /T 1 /NOBREAK >nul
FOR /F "usebackq tokens=3* delims= " %%i in (`find /C " " %2`) do set total1=%%i
FOR /F "usebackq tokens=3* delims= " %%i in (`find /V /C " " %2`) do set total2=%%i
set /A total=%total1%+%total2%
IF %totalpre% NEQ %total% (
set /A t=%total%-%totalpre%
set /A pos=%total%-%t%
more +%pos% %2
)
GOTO begin
)
@echo on
程序如上 :
该程序是用来仿unix环境tail命令,如果执行命令tail -f filename
more +%pos% %2 中有pos取不到值,第二次运行时就正常了,是什么问题呢?