Un équivalent Windows de la commande Unix tail [fermé]

Je cherche l'équivalent de la commande Unix 'tail' qui me permettra de regarder la sortie d'un fichier journal pendant qu'il est écrit.

342
demandé sur Peter Mortensen 2008-10-09 18:48:15

26 réponses

Je suggère d'installer quelque chose comme GNU Utilities pour Win32 . Il a la plupart des favoris, y compris la queue.

130
répondu Ryan Duffield 2013-01-22 18:22:26

Si vous utilisez PowerShell, cela fonctionne:

Get-Content filenamehere -Wait -Tail 30

Poster le commentaire de Stefan d'en bas, afin que les gens ne le manquent pas

PowerShell 3 introduit le paramètre a-Tail pour n'inclure que les x dernières lignes

341
répondu Alex 2017-11-23 09:28:48

J'ai toujours utilisé Baretail pour la queue dans Windows. Il est gratuit et assez sympa.

Edit: pour une meilleure description de Baretail voir cette question

57
répondu Instantsoup 2017-05-23 12:34:38

Vous pouvez obtenir de queue dans le cadre de Cygwin.

30
répondu Quentin 2008-10-09 14:49:16

Il y a un certain nombre d'options, mais toutes ont des défauts avec des fonctionnalités plus avancées.

  • Le Windows Server 2003 Tools fournit une queue simple qui peut être téléchargé avec les outils du kit de ressources. Il est trop limité à bien des égards (verrouille le fichier suivi, manque de nombreuses options comme --pid), mais fera l'affaire pour la tâche de base de suivi d'un fichier.

  • GnuWin32 queue est buggé (α β γ) - des choses comme -f tout simplement ne fonctionnent pas.

  • UnxUtils queue semble mieux (-f fonctionne, mais --pid ne semble pas, -n, mais pas --lignes=n échoue avec -f), mais semble être un projet mort.

  • Cygwin est une grosse bouillie laide, pourrait peut-être simplement utiliser la DLL et le paquet coreutils - mais a toujours des problèmes comme --pid ne fonctionne pas avec les processus win32 natifs.

21
répondu gz. 2008-10-09 16:10:02

Toute personne intéressée par une queue CMDDOS utilisant des commandes batch (voir ci-dessous) Ce n'est pas le préfet et les lignes se répètent parfois.

Utilisation: queue.MTD-d queue.MTD-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
17
répondu barlop 2016-07-19 06:42:38

J'ai utilisé Queue Pour Windows. Certainement pas aussi élégant que l'utilisation

{[0] } mais alors, vous utilisez Windows. ;)
14
répondu Jake 2008-10-09 14:50:24

Je n'ai vu Log Expert nulle part parmi les réponses ici.

Il est personnalisable et est assez bon pour parcourir les fichiers journaux. Jusqu'à présent, c'est la meilleure visionneuse de journal graphique Windows pour moi.

14
répondu Grzegorz Gralak 2018-09-08 21:36:00

Si vous ne voulez rien installer du tout, vous pouvez "construire votre propre" fichier batch qui fait le travail à partir des commandes Windows standard. Voici quelques conseils quant à la façon de le faire.

1) à l'Aide de trouver /c /v "" yourinput.fichier, obtenir le nombre de lignes dans votre fichier d'entrée. La sortie est quelque chose comme:

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

2) en utilisant pour / f , analysez cette sortie pour obtenir le nombre 15.

3) en utilisant set / a , calculez le nombre de lignes de tête qui doivent être sautée

4) en utilisant pour / f "skip=n" ignorer les lignes de tête et echo / traiter les lignes de queue.

Si je trouve le temps, je vais construire un tel fichier batch et le poster ici.

10
répondu Philibert Perusse 2008-10-09 15:30:10

Avec Windows PowerShell, vous pouvez utiliser:

Get-Content <file> -Wait
8
répondu OscarRyz 2009-05-08 21:04:39

Essayez Les Services Windows pour UNIX. Fournit des coquilles, awk, sed, etc. ainsi que la queue.

6
répondu Dave 2015-04-08 15:57:07

J'ai utilisé Mtail récemment et il semble bien fonctionner. C'est le type D'interface graphique comme baretail mentionné ci-dessus. entrez la description de l'image ici

6
répondu Vijay 2017-10-16 10:27:37

Télécharger la commande de queue, partie de Windows Server 2003 Resource Kit Tools de Microsoft lui-même.

5
répondu ismail 2015-04-16 13:39:07

Je préfère TailMe en raison de la possibilité de regarder plusieurs fichiers journaux simultanément dans une fenêtre: http://www.dschensky.de/Software/Staff/tailme_en.htm

4
répondu B.E. 2009-04-22 11:27:25

DOS A Aucune commande de queue; vous pouvez télécharger un binaire Windows pour GNU tail et d'autres outils GNU ici.

4
répondu Tomer Gabel 2009-05-08 20:42:46

Une autre option serait d'installer MSYS (qui est plus léger que Cygwin).

4
répondu Dirk Vollmar 2009-05-08 20:51:06

La commande tail et bien d'autres sont disponibles dans le package Outils du kit de ressources Windows à partir de http://www.microsoft.com/en-us/download/details.aspx?id=17657

4
répondu ucfjeff 2012-05-24 02:19:26

Je viens d'écrire ce petit script batch. Ce n'est pas aussi sophistiqué que la "queue" Unix, mais j'espère que quelqu'un peut l'Ajouter pour l'améliorer, comme limiter la sortie AUX 10 dernières lignes du fichier, etc. Si vous améliorez ce script, envoyez-le-moi à robbing ~[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
4
répondu Andrey 2018-09-08 21:35:01

Si vous voulez utiliser les ports Win32 de certains utilitaires Unix (plutôt que d'installer Cygwin), je recommande GNU utilities pour Win32.

Poids plus léger que Cygwin et plus portable.

3
répondu Grant Wagner 2008-10-09 14:51:17

Installer MKS trousse à outils.. de sorte que vous pouvez exécuter toutes les commandes unix dans windows.

Tail-f est la commande.

3
répondu 2009-12-11 11:31:41

DOS type fonctionne comme cat de *Nux, bien que tout comme cat, Il vide le fichier entier, donc ce n'est pas vraiment un vrai tail, mais il sera disponible dans un pincement sans télécharger/installer un vrai tail substitut.

3
répondu Uberfuzzy 2018-09-08 21:22:44

Dans Far Manager appuyez sur F3 sur un fichier d'entrée standard de la visionneuse, puis End clé pour naviguer jusqu'à la fin du fichier. Si le fichier est mis à jour - Far le fera défiler automatiquement.

2
répondu anatoly techtonik 2011-07-15 05:55:19

J'utilise kiwi Log Viewer . C'est gratuit.

2
répondu Peter Mortensen 2018-09-08 21:34:16

Visualiseurs de journaux Graphiques, bien qu'ils puissent être très bons pour l'affichage des fichiers journaux, ne répondent pas à la nécessité d'un utilitaire de ligne de commande qui peut être incorporé dans des scripts (ou des fichiers batch). Souvent, une commande aussi simple et polyvalente peut être utilisée dans le cadre d'une solution spécialisée pour un environnement particulier. Méthodes graphiques ne se prêtent pas facilement à une telle utilisation.

0
répondu 2011-07-01 16:40:55

Je pense avoir trouvé un utilitaire qui répond au besoin de la fonction de queue dans les fichiers batch. Ça s'appelle "mtee", et c'est gratuit. Je l'ai incorporé dans un fichier batch, je travaille et il fait le travail très bien. Assurez-vous simplement de mettre l'exécutable dans un répertoire dans L'instruction PATH, et vous partez.

Voici le lien:

Mtee

0
répondu 2011-07-01 18:27:20

Vous pouvez également essayer WinTail.

ََ

0
répondu GJ. 2018-09-08 21:33:42