一个相当于unix tail命令的窗口

我正在寻找相当于unix'tail'命令的命令,它允许我在写入日志文件的同时观察输出。

我会build议安装像Win32的GNU实用工具 。 它最受欢迎,包括尾巴。

如果你使用PowerShell,那么这个工作:

 Get-Content filenamehere -Wait 

从下面发表Stefan的评论,所以人们不会错过它

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

我一直使用Baretail在Windows中拖尾。 这是免费的,非常好。

编辑:为了更好的描述巴雷塔看到这个问题

您可以将尾巴作为Cygwin的一部分。

有相当多的select,但是他们都有缺陷与更先进的function。

  • Windows Server 2003工具提供了一个简单的尾巴,可以使用资源工具包工具下载 。 它在很多方面都是有限的(锁跟踪文件,缺less像-pid这样的许多选项),但是会为跟踪文件的基本任务做。

  • GnuWin32尾巴是越野车( αβγ ) – 像只是简单的东西不工作。

  • UnxUtils尾巴似乎更好(-f工作,但是–pid似乎不是,-n但不是–lines = n失败并带有-f),但似乎是一个死的项目。

  • Cygwin是一个很大的丑陋的可能,也许只是使用DLL和coreutils包 – 但仍然有像-pid不能用本机win32进程工作的问题。

任何人使用批处理命令感兴趣的DOS CMD尾巴(见下文)它不是完美的,有时重复行。

用法:tail.bat -d tail.bat -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 

我已经使用Tail For Windows 。 当然不如使用优雅

 尾巴 

但是,那么你正在使用Windows。 ;)

我没有看到任何地方的答案在这里的日志专家:

http://www.log-expert.de/

它是可定制的,适合绕过日志文件,迄今为止,它是我最好的Windowsgraphics日志查看器。

如果你不想安装任何东西,你可以“build立你自己的”batch file,从标准的Windows命令做的工作。 这里有一些指导如何做到这一点。

1)使用find / c / v“yourinput.file ,获取input文件中的行数。 输出是这样的:

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

2)使用for / f ,parsing这个输出得到数字15。

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

4)使用/ f“skip = n”跳过首行并回显/处理尾行。

如果我find时间,我会build立这样一个batch file,并把它发回到这里。

使用Windows PowerShell,您可以使用:

 Get-Content <file> -Wait 

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

从Microsoft自身下载tail命令, Windows Server 2003 Resource Kit Tools一部分。

我最近使用了Mtail ,它似乎运作良好。 这是上面提到的像baretail那样的GUItypes。 在这里输入图像说明

我更喜欢TailMe,因为可以在一个窗口中同时观看几个日志文件: http ://www.dschensky.de/Software/Staff/tailme_en.htm

DOS没有尾部命令; 您可以在这里下载GNU tail和其他GNU工具的Windows二进制文件。

另一个select是安装MSYS (比Cygwin更轻量级)。

我只写了这个小批处理脚本。 它并不像unix的“尾巴”那么复杂,但希望有人可以添加它来改善它,比如将输出限制到文件的最后10行等等。如果你改进了这个脚本,请把它发送给我在抢劫〜[at]〜gmail.com。

 @echo off :: This is a batch script I wrote to mimic the 'tail' UNIX command. :: It is far from perfect, but I am posting it in the hopes that it will :: be improved by other people. This was designed to work on Windows 7. :: I have not tested it on any other versions of Windows if "%1" == "" goto noarg if "%1" == "/?" goto help if "%1" == "-?" goto help if NOT EXIST %1 goto notfound set taildelay=%2 if "%taildelay%"=="" set taildelay=1 :loop cls type %1 :: I use the CHOICE command to create a delay in batch. CHOICE /C YN /DY /N /T %taildelay% goto loop :: Error handlers :noarg echo No arguments given. Try /? for help. goto die :notfound echo The file '%1' could not be found. goto die :: Help text :help echo TAIL filename [seconds] :: I use the call more pipe as a way to insert blank lines since echo. doesnt :: seem to work on Windows 7 call | more echo Description: echo This is a Windows version of the UNIX 'tail' command. echo Written completely from scratch by Andrey G. call | more echo Parameters: echo filename The name of the file to display call | more echo [seconds] The number of seconds to delay before reloading the echo file and displaying it again. Default is set to 1 call | more echo ú /? Displays this help message call | more echo NOTE: echo To exit while TAIL is running, press CTRL+C. call | more echo Example: echo TAIL foo 5 call | more echo Will display the contents of the file 'foo', echo refreshing every 5 seconds. call | more :: This is the end :die 

如果你想使用某些Unix工具的Win32端口(而不是安装Cygwin),我推荐用于Win32的GNU工具 。

更轻的重量比Cygwin更便携。

dos的type就像* nux的cat ,虽然就像猫一样,它会转储整个文件,所以它不是一个真正的尾巴,但是它可以在没有下载/安装真正的尾部替代品的情况下被使用。

安装MKS工具包..以便您可以在Windows中运行所有的Unix命令。

tail -f是命令。

我使用Kiwi Log Viewer,它是免费的。

在远程pipe理器中按F3键进入标准查看器,然后按结束键导航到文件结尾。 如果文件更新 – 远将自动滚动。

你可以试试WinTail以及http://www.baremetalsoft.com/wintail/

graphics化日志查看器虽然可能非常适合查看日志文件,但却不能满足需要可以合并到脚本(或batch file)中的命令行实用程序。 通常,这种简单的通用命令可以用作特定环境的专用解决scheme的一部分。 graphics方法不适用于这种使用。

我想我已经find了满足batch file尾部function需求的工具。 它被称为“mtee”,它是免费的。 我已经将它合并到我正在处理的batch file中,它很好地完成了这项工作。 只要确保将可执行文件放到PATH语句的目录中,然后离开。

这是链接:

MTEE