Domanda

Sto cercando l'equivalente del comando 'tail' di Unix che mi permetterà di vedere l'output di un file di registro mentre viene scritto.

È stato utile?

Soluzione

Suggerirei di installare qualcosa come GNU Utilities per Win32 . Ha la maggior parte dei preferiti, inclusa la coda.

Altri suggerimenti

Se usi PowerShell allora funziona:

Get-Content filenamehere -Wait -Tail 30

Pubblicazione del commento di Stefan dal basso, in modo che la gente non lo perda

PowerShell 3 introduce un parametro -Tail per includere solo le ultime x righe

Ho sempre usato Baretail per seguire la coda di Windows. È gratuito e piuttosto carino.

Modifica: per una migliore descrizione di Baretail vedi questa domanda

Puoi ottenere la coda come parte di Cygwin .

Chiunque sia interessato a una coda CMD DOS usando i comandi batch (vedi sotto).

Non è perfetto, e le linee a volte si ripetono.

Utilizzo: 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

Esistono diverse opzioni, tuttavia tutte presentano difetti con funzionalità più avanzate.

Ho usato Tail For Windows . Certamente non è elegante come usare

tail
ma poi stai usando Windows. ;)

Non ho visto Log Expert ovunque tra le risposte qui.

È personalizzabile ed è abbastanza buono per andare in giro file di registro. Finora è il miglior visualizzatore di log grafico di Windows per me.

Se non desideri installare nulla, puoi " costruire il tuo " file batch che esegue il lavoro dai comandi standard di Windows. Ecco alcuni suggerimenti su come farlo.

1) Utilizzando trova / c / v " " yourinput.file , ottieni il numero di righe nel tuo file di input. L'output è simile a:

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

2) Usando per / f , analizza questo output per ottenere il numero 15.

3) Utilizzando set / a , calcola il numero di linee di testa che devono essere saltate

4) Usando per / f " skip = n " salta le linee di testa ed echo / elabora le linee di coda.

Se trovo il tempo, costruirò un tale file batch e lo pubblicherò di nuovo qui.

Con Windows PowerShell puoi usare:

Get-Content <file> -Wait

Ho usato Mtail di recente e sembra funzionare bene. Questo è il tipo di interfaccia grafica come il baretail di cui sopra. inserisci qui la descrizione dell'immagine

Prova Servizi Windows per UNIX . Fornisce conchiglie, awk, sed, ecc. Nonché coda.

Scarica il comando tail, parte di Strumenti del Resource Kit di Windows Server 2003 da Microsoft stesso.

Preferisco TailMe per la possibilità di guardare contemporaneamente più file di registro in un'unica finestra: http://www.dschensky.de/Software/Staff/tailme_en.htm

DOS non ha nessun comando di coda; puoi scaricare un binario di Windows per GNU tail e altri strumenti GNU qui .

Un'altra opzione sarebbe quella di installare MSYS (che è più leggero di Cygwin).

Il tipo di DOS funziona come il cat di * nux, anche se proprio come il cat , scarica l'intero file, quindi non è proprio un vero tail , ma sarà disponibile in un pizzico senza scaricare / installare un vero sostituto tail .

Ho appena scritto questo piccolo script batch. Non è sofisticato come Unix "tail", ma si spera che qualcuno possa aggiungerlo per migliorarlo, come limitare l'output alle ultime 10 righe del file, ecc. Se si migliora questo script, si prega di inviare a me derubare ~ [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

Il comando tail e molti altri sono disponibile nel Strumenti del Resource Kit di Windows .

Se si desidera utilizzare le porte Win32 di alcune utility Unix (anziché installare Cygwin), si consiglia di utility GNU per Win32 .

Peso più leggero di Cygwin e più portatile.

Installa MKS Toolkit ... In modo da poter eseguire tutti i comandi Unix su Windows.

Il comando è:

tail -f <file-name>  

In Far Manager , premi F3 su un file per inserire il visualizzatore standard, quindi il tasto Fine per passare alla fine del file.

Se il file viene aggiornato, Far Manager lo scorrerà automaticamente.

Sto usando Kiwi Log Viewer . È gratuito.

I visualizzatori di log grafici, sebbene possano essere molto utili per visualizzare i file di log, non soddisfano la necessità di un'utilità della riga di comando che può essere incorporata negli script (o nei file batch). Spesso un comando così semplice e generico può essere utilizzato come parte di una soluzione specializzata per un particolare ambiente. I metodi grafici non si prestano facilmente a tale uso.

Penso di aver trovato un'utilità che soddisfa la necessità della funzione tail nei file batch. Si chiama " mtee " ;, ed è gratuito. L'ho incorporato in un file batch su cui sto lavorando e fa molto bene il lavoro. Assicurati di inserire l'eseguibile in una directory nell'istruzione PATH e via.

Ecco il link:

mtee

Puoi provare anche WinTail .

& # 1614; & # 1614;

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top