Эквивалент Windows команды хвоста Unix [закрыто]

Я ищу эквивалент команды "хвост" Unix, которая позволит мне наблюдать за выходом файла журнала во время его записи.

26 ответов


Я бы предложил установить что-то вроде утилиты GNU для Win32. Он имеет большинство фаворитов, в том числе хвост.


Если вы используете PowerShell, то это работает:

Get-Content filenamehere -Wait -Tail 30

публикация комментария Стефана снизу, чтобы люди не пропустили его

PowerShell 3 вводит параметр-Tail, чтобы включить только последние X строк


Я всегда использовал baretail с для хвостовых в Windows. Это бесплатно и довольно приятно.

Edit: для лучшего описания Baretail см. этот вопрос


вы можете получить хвост как часть Cygwin.


существует довольно много вариантов, однако все они имеют недостатки с более расширенными функциями.

  • на Средства Windows Server 2003 обеспечивает простой хвост, который может быть загружено с помощью набора ресурсов Tools. Он слишком ограничен во многих отношениях (блокировки следуют за файлом, не хватает многих опций, таких как --pid), однако будет делать для основной задачи отслеживания файла.

  • хвост GnuWin32 глючит (α β γ) - такие вещи, как-f просто не работают.

  • хвост UnxUtils кажется лучше (- F работает, но --pid, кажется, нет,- n, но не --lines=N терпит неудачу с-f), но кажется мертвым проектом.

  • Cygwin является большой уродливой кашицей, возможно, можно просто использовать DLL и пакет coreutils - но все еще есть проблемы, такие как --pid не работает с собственным win32 процессы.


кого интересует DOS хвост CMD с помощью команд пакета (см. ниже) Его не префект и линии когда-то повторяются.

использование: хвост.bat-d хвост.бат-ф-ф

@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

я использовал Хвост Для Windows. Конечно, не так элегантно, как использование

tail
но тогда вы используете Windows. ;)

Я не видел Log Expert в любом месте среди ответов здесь.

он настраивается и довольно хорош для обхода файлов журналов. До сих пор это лучший графический просмотрщик журналов Windows для меня.


Если вы не хотите ничего устанавливать, вы можете "создать свой собственный" пакетный файл, который выполняет работу из стандартных команд Windows. Вот несколько советов, как это сделать.

1) с помощью найти /c / v "" yourinput.файл, получить количество строк во входном файле. Вывод примерно такой:

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

2) с помощью для /f, проанализируйте этот вывод, чтобы получить число 15.

3) с помощью set / a, расчета количество заголовков, которые нужно пропустить

4) с помощью для /f "skip=n" пропустить головные линии и Эхо / обработать хвостовые линии.

Если я найду время, я создам такой пакетный файл и запостить сюда.


С помощью Windows PowerShell вы можете использовать:

Get-Content <file> -Wait

попробовать службы Windows для UNIX. Обеспечивает снарядов, как awk, СЭД и т. д. как и хвост.


Я использовал Mtail в последнее время, и это, кажется, работает хорошо. Это тип GUI, такой как baretail, упомянутый выше. enter image description here


загрузите команду tail, часть Windows Server 2003 Resource Kit Tools с Microsoft.


Я предпочитаю TailMe из-за возможности смотреть несколько файлов журнала одновременно в одном окне:http://www.dschensky.de/Software/Staff/tailme_en.htm


DOS и нет команды хвоста; вы можете скачать двоичный файл Windows для GNU tail и других инструментов GNU здесь.


другой вариант - установить префикса msys (что больше веса, чем Cygwin).


на хвост command и многие другие доступны в пакете инструментов Windows Resource Kit изhttp://www.microsoft.com/en-us/download/details.aspx?id=17657


Я только что написал этот маленький пакетный скрипт. Это не так сложно, как "хвост" Unix, но, надеюсь, кто-то может добавить к нему, чтобы улучшить его, например, ограничить вывод последними 10 строками файла и т. д. Если вы улучшите этот скрипт, отправьте его мне на 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

Если вы хотите использовать Win32-порты некоторых утилит Unix (а не устанавливать Cygwin), я рекомендую утилиты GNU для Win32.

более легкий вес, чем Cygwin и более портативный.


установите набор инструментов MKS.. чтобы вы могли запускать все команды unix в windows.

tail-f-это команда.


DOS на type работает как *, хотя как cat, он сбрасывает весь файл, так что это не совсем true tail, но он будет доступен в крайнем случае без загрузки / установки true tail заменить.


на Far Manager пресс Ф3 на файл, чтобы ввести стандартный viewer, то конец клавиша для перехода к концу файла. Если файл обновлен-Far будет прокручивать его автоматически.


Я использую Просмотр Журнала Киви. Это бесплатно.


graphical log viewers, хотя они могут быть очень хороши для просмотра файлов журнала, не отвечают потребности в утилите командной строки, которая может быть включена в скрипты (или пакетные файлы). Часто такая простая и универсальная команда может использоваться как часть специализированного решения для конкретной среды. Графические методы не поддаются такому использованию.


Я думаю, что нашел утилиту, которая удовлетворяет потребности в функции хвоста в пакетных файлах. Это называется "mtee", и это бесплатно. Я включил его в пакетный файл, над которым работаю, и он делает работу очень хорошо. Просто не забудьте поместить исполняемый файл в каталог в инструкции PATH, и вы уйдете.

вот ссылка:

mtee


вы можете попробовать WinTail Как хорошо.

َ َ