Эквивалент Windows команды хвоста Unix [закрыто]
Я ищу эквивалент команды "хвост" Unix, которая позволит мне наблюдать за выходом файла журнала во время его записи.
26 ответов
Я бы предложил установить что-то вроде утилиты GNU для Win32. Он имеет большинство фаворитов, в том числе хвост.
Если вы используете PowerShell, то это работает:
Get-Content filenamehere -Wait -Tail 30
публикация комментария Стефана снизу, чтобы люди не пропустили его
PowerShell 3 вводит параметр-Tail, чтобы включить только последние X строк
Я всегда использовал baretail с для хвостовых в Windows. Это бесплатно и довольно приятно.
Edit: для лучшего описания Baretail см. этот вопрос
существует довольно много вариантов, однако все они имеют недостатки с более расширенными функциями.
на Средства 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 для UNIX. Обеспечивает снарядов, как awk, СЭД и т. д. как и хвост.
Я использовал Mtail в последнее время, и это, кажется, работает хорошо. Это тип GUI, такой как baretail, упомянутый выше.
загрузите команду 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, и вы уйдете.
вот ссылка: