ログファイルへの書き込み中にログファイルの出力を監視できる、Unixの「tail」コマンドに相当するものを探しています。
ログファイルへの書き込み中にログファイルの出力を監視できる、Unixの「tail」コマンドに相当するものを探しています。
回答:
Win32用のGNUユーティリティのようなものをインストールすることをお勧めします。それは尾を含むほとんどのお気に入りがあります。
tail
2 GBのファイルでGNUを使用しようとしたところ、窒息しました。 more
正常に動作しました(少なくともファイルの先頭を表示)。
head
がtail
… できませんか?
tail
:) を実行する単純なスクリプトを作成するだけです
PowerShellを使用している場合、これは機能します。
Get-Content filenamehere -Wait -Tail 30
ステファンのコメントを下から投稿して、見逃さないように
PowerShell 3では、最後のx行のみを含める-Tailパラメーターが導入されています
tail
便利な場合があります)(2)希望するほど動的ではありません(おそらく、セットアップと他のポスター間のOS /ファイルシステムの変更が原因です) ?)。つまり、別のシェルでGet-Content
実行するまで、実行dir
中のシェルが更新されない場合があると判断しました。
Get-Content -Tail 100 -Wait .\logfile.log
ますか?
バッチコマンドを使用した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
ping 127.0.0.1 -n 2 > nul
前にこの行を追加しましたgoto followloop
。2つのpingを送信し、1秒間隔で待機します。そのため、CPUがライブになります!:D
timeout /t 2
ですか?
かなりの数のオプションがありますが、それらのすべてに、より高度な機能に欠陥があります。
GnuWin32テールはバグがある(α β γ) - -fのようなものは、単なる仕事をしません。
UnxUtilsテールはより良いようです(-fは機能しますが、-pidは機能しませんが、-nは--f =で失敗しません)-デッドプロジェクトのようです。
Cygwinは非常に醜いドロドロで、おそらくDLLとcoreutilsパッケージを使用するだけかもしれませんが、それでも--pidがネイティブのwin32プロセスで動作しないなどの問題があります。
Tail For Windowsを使用しました。確かに使用するほどエレガントではありません
尾しかし、その後はWindowsを使用しています。;)
ここで答えの中にLog Expertを見たことがありません。
これはカスタマイズ可能で、ログファイルを移動するのに非常に適しています。これまでのところ、これは私にとって最高のWindowsグラフィカルログビューアです。
残念ながら、このソフトウェアはご利用いただけません。これについては、archive.orgで読むことができます。
何もインストールしたくない場合は、標準の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 Services for UNIXをお試しください。シェル、awk、sedなど、および尾を提供します。
更新 -:残念ながら、2019年以降、このシステムはMicrosoftダウンロードセンターで利用できなくなりました。
この小さなバッチスクリプトを書いたところです。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 /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
echo.
、単語の末尾にドットを付けて(個別の引数としてではなく)コマンドを呼び出すと、新しい行が1つ出力されます。
tail
コマンドおよび他の多くで利用可能なWindowsリソースキットツールのパッケージ。
(Cygwinをインストールするのではなく)一部のUnixユーティリティのWin32ポートを使用する場合は、Win32用のGNUユーティリティをお勧めします。
Cygwinより軽量で持ち運びに便利です。
では極東マネージャー、プレスF3ファイルには、その後、標準のビューアを入力しますEndファイルの末尾に移動し、キー。
ファイルが更新されると、Far Managerが自動的にスクロールします。
グラフィカルなログビューアは、ログファイルの表示には非常に適しているかもしれませんが、スクリプト(またはバッチファイル)に組み込むことができるコマンドラインユーティリティの必要性を満たしていません。多くの場合、このようなシンプルで汎用的なコマンドは、特定の環境に特化したソリューションの一部として使用できます。グラフィカルな方法は、そのような用途にすぐには役立ちません。