我正在寻找Unix 'tail'命令的等效,这将允许我观察日志文件的输出,而它正在被写入。


当前回答

使用Windows PowerShell,您可以使用:

Get-Content <file> -Wait

其他回答

任何人对使用批处理命令(见下文)的DOS CMD尾部感兴趣。

它不是完美的,有时台词会重复。

用法:tail.bat -d 尾巴,蝙蝠-f -f

@echo off
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
rem tail.bat -d <lines> <file>
rem tail.bat -f <file>

rem ****** MAIN ******
IF "%1"=="-d" GOTO displayfile
IF "%1"=="-f" GOTO followfile

GOTO end

rem ************
rem Show Last n lines of file
rem ************

:displayfile
SET skiplines=%2
SET sourcefile=%3

rem *** Get the current line count of file ***
FOR /F "usebackq tokens=3,3 delims= " %%l IN (`find /c /v "" %sourcefile%`) DO (call SET find_lc=%%l)

rem *** Calculate the lines to skip
SET /A skiplines=%find_lc%-!skiplines!

rem *** Display to screen line needed
more +%skiplines% %sourcefile%

GOTO end

rem ************
rem Show Last n lines of file & follow output
rem ************

:followfile
SET skiplines=0
SET findend_lc=0
SET sourcefile=%2

:followloop
rem *** Get the current line count of file ***
FOR /F "usebackq tokens=3,3 delims= " %%l IN (`find /c /v "" %sourcefile%`) DO (call SET find_lc=%%l)
FOR /F "usebackq tokens=3,3 delims= " %%l IN (`find /c /v "" %sourcefile%`) DO (call SET findend_lc=%%l)

rem *** Calculate the lines to skip
SET /A skiplines=%findend_lc%-%find_lc%
SET /A skiplines=%find_lc%-%skiplines%

rem *** Display to screen line when file updated
more +%skiplines% %sourcefile%

goto followloop

:end

在Far Manager中,在文件上按F3进入标准查看器,然后按End键导航到文件末尾。

如果文件更新了,Far Manager将自动滚动它。

有相当多的选择,但他们都有更高级的功能缺陷。

GnuWin32尾巴是错误的(α β γ) -像-f只是不工作。 UnxUtils尾部似乎更好(-f工作,但-pid似乎不是,-n但不是——lines=n失败与-f),但似乎是一个死亡的项目。 Cygwin是一个巨大的丑陋的混乱,可能只需要使用DLL和coreutils包-但仍然存在问题,如pid不能与本机win32进程一起工作。

下载tail命令,这是微软自己提供的Windows Server 2003资源工具包工具的一部分。

我想我已经找到了一个实用程序,可以满足批处理文件中尾函数的需求。它叫做“mtee”,是免费的。我已经把它合并到我正在处理的批处理文件中,它做得非常好。只要确保将可执行文件放到PATH语句中的一个目录中,就可以了。

这是链接:

mtee