Я ищу эквивалент команды "хвост" Unix, которая позволит мне наблюдать за выходом файла журнала во время его написания.
Эквивалент Windows команды хвоста 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.
Ответ 14
Я предпочитаю TailMe из-за возможности просмотра нескольких файлов журналов одновременно в одном окне: http://www.dschensky.de/Software/Staff/tailme_en.htm
Ответ 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
Ответ 18
Команда tail и многие другие доступны в пакете инструментов Windows Resource Kit из http://www.microsoft.com/en-us/download/details.aspx?id=17657
Ответ 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 и отпустите.
Здесь ссылка: