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


当前回答

如果你根本不想安装任何东西,你可以用标准的Windows命令“构建你自己的”批处理文件。这里有一些关于如何做到这一点的建议。

1)使用find /c /v "" yourinput。文件,获取输入文件中的行数。输出如下所示:

---------- T.TXT: 15

2)使用for /f,解析此输出以得到数字15。

3)使用set /a,计算需要跳过的标题行数

4)使用for /f "skip=n"跳过头部行,回显/处理尾部行。

如果我有时间,我将构建这样一个批处理文件,并将其发布回这里。

编辑:tail.bat

REM tail.bat
REM
REM Usage: tail.bat <file> <number-of-lines> 
REM
REM Examples: tail.bat myfile.txt 10
REM           tail.bat "C:\My File\With\Spaces.txt" 10

@ECHO OFF
for /f "tokens=2-3 delims=:" %%f in ('find /c /v "" %1') do (
    for %%F in (%%f %%g) do set nbLines=%%F )
set /a nbSkippedLines=%nbLines%-%2
for /f "usebackq skip=%nbSkippedLines% delims=" %%d in (%1) do echo %%d

其他回答

如果你使用PowerShell,那么这是有效的:

Get-Content filenamehere -Wait -Tail 30

把Stefan的评论贴在下面,这样大家就不会错过了

PowerShell 3引入了-Tail参数,只包含最后x行

尝试UNIX的Windows服务。提供shell, awk, sed等以及尾部。

更新-:不幸的是,截至2019年,该系统不再适用于微软下载中心。

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

这是链接:

mtee

我建议为Win32安装GNU实用程序。它有最喜欢的,包括尾巴。

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

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