ログ ファイルへの書き込み中にログ ファイルの出力を監視できる、Unix の「tail」コマンドに相当するものを探しています。
26 に答える
PowerShell を使用する場合、これは機能します。
Get-Content filenamehere -Wait -Tail 30
ステファンのコメントを下から投稿して、人々が見逃さないようにします
PowerShell 3 では、最後の x 行のみを含める -Tail パラメーターが導入されています
GNU Utilities for Win32 のようなものをインストールすることをお勧めします。しっぽも含めて一番のお気に入りです。
私は常にWindows でのテーリングにBaretailを使用してきました。無料でかなりいいです。
編集:Baretailのより良い説明については、この質問を参照してください
Cygwinの一部として tail を取得できます。
バッチコマンドを使用したDOSCMDテールに関心のある人(以下を参照)。
それは完璧ではなく、行が繰り返されることもあります。
使用法: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
かなりの数のオプションがありますが、それらはすべて、より高度な機能に欠陥があります.
GnuWin32 テールにはバグがあります ( α β γ ) - -f のようなものは単純に機能しません。
UnxUtils tail の方が優れているように見えます (-f は機能しますが、 --pid は機能しないようです。-n ではなく --lines=n は -f で失敗します) が、デッド プロジェクトのようです。
Cygwinは非常に醜く、おそらく DLL とcoreutils パッケージを使用できますが、 --pid がネイティブの win32 プロセスで動作しないなどの問題があります。
Tail For Windowsを使用しました。確かに使用するほどエレガントではありません
しっぽしかし、あなたはWindowsを使用しています。;)
何もインストールしたくない場合は、標準のWindowsコマンドからジョブを実行する「独自の」バッチファイルを作成できます。これを行う方法に関するいくつかの指針があります。
1)find / c / v "" yourinput.fileを使用して、入力ファイルの行数を取得します。出力は次のようになります。
---------- 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
Windows PowerShell では、次を使用できます。
Get-Content <file> -Wait
ここの回答のどこにもLog Expertを見たことがありません。
カスタマイズ可能で、ログ ファイルを処理するのに非常に適しています。これまでのところ、私にとっては最高の Windows グラフィカル ログ ビューアです。
残念ながら、このソフトウェアは利用できなくなりました。これについては、 archive.orgで読むことができます。
私は最近Mtailを使用しましたが、うまく機能しているようです。上記のbaretailのようなGUIタイプです。
Microsoft自体Windows Server 2003 Resource Kit Tools
からの一部である tail コマンドをダウンロードします。
Windows Services for UNIX を試してみてください。シェル、awk、sed などとテールを提供します。
更新- : 残念ながら、2019 年現在、このシステムは Microsoft ダウンロード センターから入手できなくなりました。
このtail
コマンドと他の多くのコマンドは、Windowsリソースキットツールパッケージで利用できます。
1 つのウィンドウで複数のログ ファイルを同時に見ることができるため、私は TailMe を好みます: http://www.dschensky.de/Software/Staff/tailme_en.htm
DOSには末尾のコマンドがありません。GNU tail およびその他の GNU ツール用の Windows バイナリは、ここからダウンロードできます。
DOStype
は *nux のcat
ようcat
に動作しますが、ファイル全体をダンプするため、実際には真ではありませんが、真の代替物tail
をダウンロード/インストールしなくてもピンチで利用できるようになります。tail
別のオプションは、MSYS (Cygwin より軽量) をインストールすることです。
この小さなバッチ スクリプトを作成しました。Unix の「tail」ほど洗練されたものではありませんが、出力をファイルの最後の 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 /D Y /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
(Cygwin をインストールするのではなく) 一部の Unix ユーティリティの Win32 ポートを使用したい場合は、Win32 用の GNU ユーティリティをお勧めします。
Cygwin よりも軽量で移植性に優れています。
Far Managerで、ファイルを押しF3て標準ビューアに入り、Endキーを押してファイルの最後に移動します。
ファイルが更新されると、Far Manager は自動的にスクロールします。
WinTailも試すことができます。
ََ
グラフィカルなログ ビューアは、ログ ファイルの表示には非常に適しているかもしれませんが、スクリプト (またはバッチ ファイル) に組み込むことができるコマンド ライン ユーティリティの必要性を満たしていません。多くの場合、このような単純で汎用的なコマンドは、特定の環境に特化したソリューションの一部として使用できます。グラフィカルな方法は、そのような用途には向いていません。
Kiwi Log Viewerを使用しています。それは無料です。
バッチ ファイルの tail 関数の必要性を満たすユーティリティを見つけたと思います。それは「mtee」と呼ばれ、無料です。作業中のバッチファイルに組み込みましたが、非常にうまく機能します。実行可能ファイルを PATH ステートメントのディレクトリに入れるようにしてください。
リンクは次のとおりです。