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

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

Ответ 1

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

Ответ 2

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

Get-Content filenamehere -Wait -Tail 30

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

PowerShell 3 вводит параметр -Tail для включения только последних x строк

Ответ 3

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

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

Ответ 4

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

Ответ 5

Существует множество вариантов, однако все они имеют недостатки с более продвинутыми функциями.

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

  • GnuWin32 tail является ошибкой (α β γ) - такие вещи, как -f просто дон- т.

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

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

Ответ 6

Любой, кто интересуется хвостом CMS DOS с использованием командных команд (см. ниже) Его не префект и линии когда-то повторяются.

Использование: 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

Ответ 7

Я использовал Tail For Windows. Конечно, не так элегантно, как использование

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

Ответ 8

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

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

Ответ 9

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

1) Используя find/c/v "" yourinput.file, получите количество строк в вашем входном файле. Результат выглядит примерно так:

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

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

3) Используя set/a, подсчитайте количество головных строк, которые нужно пропустить

4) Используя для /f "skip = n" пропустите головы и эхо/обработайте хвостовые линии.

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

Ответ 10

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

Get-Content <file> -Wait

Ответ 11

Попробуйте Службы Windows для UNIX. Предоставляет оболочки, awk, sed и т.д., А также хвост.

Ответ 12

Я недавно использовал Mtail и, похоже, работает хорошо. Это тип графического интерфейса, например, упомянутый выше. введите описание изображения здесь

Ответ 13

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

Ответ 15

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

Ответ 16

Другой вариант - установить MSYS (который более легкий, чем Cygwin).

Ответ 17

Я просто написал этот маленький пакетный скрипт. Это не так сложно, как "хвост" 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

Ответ 19

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

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

Ответ 20

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

Ответ 21

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

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

Ответ 22

Я использую Kiwi Log Viewer. Это бесплатно.

Ответ 23

В Far Manager нажмите F3 в файле для входа в стандартный просмотрщик, затем End, чтобы перейти к концу файла. Если файл обновлен - Far будет автоматически прокручивать его.

Ответ 24

Вы также можете попробовать WinTail.

Ответ 25

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

Ответ 26

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

Здесь ссылка:

mtee