一个相当于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。 ;)
如果你不想安装任何东西,你可以“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