На самом деле есть хвост для XP, просто Microsoft не устанавливает его со стандартной версией XP; они упаковали его в «Windows Server 2003 Resource Kit Tools». Вы можете получить его здесь: microsoft.com/downloads/…
mobaXTerm, это бесплатно и имеет журнал плагинов, вы можете сделать tail -f /drives/c/logs/mylog.log
surfealokesea
3
Я не думаю, что это должно было быть закрыто, поскольку мне нужно то же самое для отладки трассировки в моем приложении Windows. Речь идет о «программных инструментах, обычно используемых программистами», о которых идет
речь
Ответы:
137
Я бы предложил установить что-то вроде GNU Utilities для Win32 . У этого есть большинство фаворитов, включая хвост.
@EricJ., Спасибо, это действительно актуально. Но я только что понял, что мне проще использовать обходной путь: я просто собираюсь написать простой скрипт, который выполняет tail:)
Это полезно знать; Спасибо. Но у меня была пара проблем с ним (на Windows 7). (1) он отображает весь файл (не подходит для массивного файла журнала, поэтому он tailможет быть полезен) (2) он не такой динамичный, как мне бы хотелось (возможно, из-за изменений ОС / файловой системы между моей установкой и другими авторами ?). То есть я определил, что выполняемая оболочка Get-Contentиногда не обновляется, пока не запустится dirв другой оболочке.
mpontillo
10
Я думаю, что стоит упомянуть, что PowerShell приостановит прокрутку / вывод, если вы выберете что-то в окне терминала, чтобы дать вам возможность читать, копировать / вставлять и т. Д. Если вы нажмете Enter, он возобновит прокрутку.
cbednarski
19
В PowerShell 3 введен параметр -Tail, включающий только последние x строк
Стефан Хаберл,
8
Так разве не должен быть правильный ответ для Powershell Get-Content -Tail 100 -Wait .\logfile.log?
Хенно Вермёлен
62
Я всегда использовал Baretail для хвостов в Windows. Это бесплатно и довольно приятно.
Изменить: для лучшего описания Baretail см этот вопрос
Это оказалось первым решением, которое работало для меня на [gulp] Windows Server 2003 R2 SP1! Супер просто с установщиком, работало на хвостик прямо из коробки :)
cellepo
Загрузка и выполнение неподписанных исполняемых файлов по HTTP, вероятно, не очень хорошая идея. По крайней мере, нужно скачать через их сайт HTTPS .
Zero3
Я нахожу удивительным, что они продолжают поддерживать сайт и обновлять SSL-сертификат до сегодняшнего дня, хотя программное обеспечение не обновляется с 2006 года. Именно то, что мне было нужно. Защитник Windows не находит угрозы.
Любой, кто интересуется хвостом DOS CMD с помощью пакетных команд (см. Ниже).
Это не префект, а строки иногда повторяются.
Использование: 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
Это умно, и я полностью использую существующие функции, когда загрузка инструмента не вариант! Этот код потребляет процессор, так как он будет постоянно вращаться для -f.
armstrhb
1
была та же проблема с загрузкой и едой процессора! добавил эту строку ping 127.0.0.1 -n 2 > nulраньше goto followloop. он отправляет два пинга и ждет 1 в секунду между. так что пусть процессор будет жить!: D
Мохсен ЗареЗардейни
Потрясающие! Большое спасибо
Джон Фэрбенкс
1
зачем использовать пинг, если вы можете использовать timeout /t 2?
Namezero
23
Существует довольно много вариантов, однако все они имеют недостатки с более продвинутыми функциями.
Хвост UnxUtils кажется лучше (-f работает, но --pid, кажется, нет, -n, но не --lines = n не работает с -f), но кажется мертвым проектом.
Cygwin - большой уродливый месив, может, возможно, просто использует DLL и пакет coreutils - но все еще имеет проблемы, такие как --pid не работает с собственными процессами win32.
Мне нравятся функции Log Expert, однако в Win 7 64 bit мой опыт был ошибочным.
Глина
Я скучаю по "четкому виду" функциональности.
Даниэль Хари
13
Если вы вообще не хотите ничего устанавливать, вы можете «создать свой» пакетный файл, который выполняет эту работу из стандартных команд Windows. Вот несколько советов о том, как это сделать.
1) Используя find / c / v "" yourinput.file , получите количество строк во входном файле. Вывод что-то вроде:
---------- T.TXT: 15
2) Используя for / f , проанализируйте этот вывод, чтобы получить число 15.
3) Используя set / a , рассчитайте количество заголовков, которые нужно пропустить
4) Используя for / f "skip = n", пропустите линии заголовка и просмотрите / обработайте линии хвоста.
Если я найду время, я создам такой пакетный файл и отправлю его сюда.
РЕДАКТИРОВАТЬ: tail.bat
REM tail.bat
REM
REM Usage: tail.bat <file> <number-of-lines>
REM
REM Examples: tail.bat myfile.txt 10
REM tail.bat "C:\My File\With\Spaces.txt" 10
@ECHO OFF
for /f "tokens=2-3 delims=:" %%f in ('find /c /v "" %1') do (
for %%F in (%%f %%g) do set nbLines=%%F )
set /a nbSkippedLines=%nbLines%-%2
for /f "usebackq skip=%nbSkippedLines% delims=" %%d in (%1) do echo %%d
Вот партия предыдущего объяснения. Он отображает последние 10 строк текущего файла: ____ для / f "tokens = 3" %% f in ('find / c / v ""% 0') do set nbLines = %% f ____ set / a nbSkippedLines = % nbLines% -10 ____ для / f "skip =% nbSkippedLines% delims =" %% d в (% 0) do echo %% d
Николас
1
Это именно то, что хочет плакат, и он работает просто отлично.
Джеки Йе
Спасибо за код! Я добавил его в ответ с исправленным номером параметра и дополнительным номером строки. Обратите внимание, что он будет отображать линии выхода. PS: я использовал его для создания файла 1,5 Гб и получил результаты всего за 15 секунд.
Леопольдо Санчик
На самом деле, на шаге 4 было бы даже лучше, если бы я использовал команду «more», которая принимает параметры для количества пропускаемых строк. Еще быстрее я бы подумал.
Филиберт Перусс
8
Я недавно использовал Mtail, и, похоже, он работает хорошо. Это тип GUI, подобный baretail, упомянутому выше.
В самом деле? Ты бегаешь с отрицательным голосованием четырехлетних ответов? Способ внести свой вклад.
Дэйв
9
@ Дэйв: Хотя вопрос старый, люди все еще смотрят на него, пытаясь найти лучший ответ. Если ответ даже почти 5 лет назад больше не актуален или не годится, то почему не следует его отвергать? Весь этот сайт о получении ценной информации быстрее - сегодня, а не 5 лет назад.
Оливер
1
@Hellfire - вы должны редактировать ответ при условии, что он не работает с Wwindows 7. Глупо просто комментировать.
DOS typeработает как * nux cat, хотя точно так же cat, как и дамп всего файла, так что это не совсем правда tail, но он будет доступен в крайнем случае без загрузки / установки истинной tailзамены.
Я только что написал этот маленький пакетный скрипт. Он не такой сложный, как «хвост» Unix, но, надеюсь, кто-то может добавить к нему, чтобы улучшить его, например, ограничить вывод последними 10 строками файла и т. Д. Если вы улучшаете этот скрипт, пожалуйста, отправьте его мне в ограблении ~ [в] ~ 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
Хорошая идея с использованием команды "type", но вы не можете к ней обратиться!
Eadmaster
Это просто продолжает перезагружать текстовый файл.
пакетная версия echo ведет себя странно, если ей не даны аргументы, она просто завершается, но если вы вызываете команду как echo.завершающую точку в слове (а не как отдельный аргумент), она напечатает одну новую строку.
Графические средства просмотра журналов, хотя они могут быть очень хороши для просмотра файлов журналов, не удовлетворяют потребности в утилите командной строки, которая может быть включена в сценарии (или пакетные файлы). Часто такую простую и универсальную команду можно использовать как часть специализированного решения для конкретной среды. Графические методы не подходят для такого использования.
Я думаю, что нашел утилиту, которая удовлетворяет потребность в функции хвоста в пакетных файлах. Это называется "Mtee", и это бесплатно. Я включил его в пакетный файл, над которым я работаю, и он отлично справляется со своей задачей. Просто убедитесь, что поместили исполняемый файл в каталог в выражении PATH, и все - и все.
Ответы:
Я бы предложил установить что-то вроде GNU Utilities для Win32 . У этого есть большинство фаворитов, включая хвост.
источник
tail
на файл 2 ГБ, и он задохнулся.more
работал нормально (по крайней мере, просмотр начала файла).head
но неtail
... Идеи?tail
:)Если вы используете PowerShell, то это работает:
Публикация комментария Стефана снизу, чтобы люди его не пропустили
PowerShell 3 вводит параметр -Tail, который включает только последние x строк
источник
tail
может быть полезен) (2) он не такой динамичный, как мне бы хотелось (возможно, из-за изменений ОС / файловой системы между моей установкой и другими авторами ?). То есть я определил, что выполняемая оболочкаGet-Content
иногда не обновляется, пока не запуститсяdir
в другой оболочке.Get-Content -Tail 100 -Wait .\logfile.log
?Я всегда использовал Baretail для хвостов в Windows. Это бесплатно и довольно приятно.
Изменить: для лучшего описания Baretail см
этот вопросисточник
Вы можете получить хвост как часть Cygwin .
источник
Любой, кто интересуется хвостом
DOSCMD с помощью пакетных команд (см. Ниже).Это не префект, а строки иногда повторяются.
Использование: tail.bat -d tail.bat -f -f
источник
ping 127.0.0.1 -n 2 > nul
раньшеgoto followloop
. он отправляет два пинга и ждет 1 в секунду между. так что пусть процессор будет жить!: Dtimeout /t 2
?Существует довольно много вариантов, однако все они имеют недостатки с более продвинутыми функциями.
Хвост GnuWin32 глючит ( α β γ ) - такие вещи, как -f просто не работают.
Хвост UnxUtils кажется лучше (-f работает, но --pid, кажется, нет, -n, но не --lines = n не работает с -f), но кажется мертвым проектом.
Cygwin - большой уродливый месив, может, возможно, просто использует DLL и пакет coreutils - но все еще имеет проблемы, такие как --pid не работает с собственными процессами win32.
источник
Я использовал Tail For Windows . Конечно, не так элегантно, как при использовании
но тогда вы используете Windows. ;)источник
С Windows PowerShell вы можете использовать:
источник
Я не видел Log Expert нигде среди ответов здесь.
Это настраиваемо и довольно хорошо для обхода файлов журналов. Пока что это лучшая программа для просмотра графических журналов Windows.
К сожалению, это программное обеспечение больше не доступно. Вы можете прочитать об этом на archive.org .
источник
Если вы вообще не хотите ничего устанавливать, вы можете «создать свой» пакетный файл, который выполняет эту работу из стандартных команд Windows. Вот несколько советов о том, как это сделать.
1) Используя find / c / v "" yourinput.file , получите количество строк во входном файле. Вывод что-то вроде:
2) Используя for / f , проанализируйте этот вывод, чтобы получить число 15.
3) Используя set / a , рассчитайте количество заголовков, которые нужно пропустить
4) Используя for / f "skip = n", пропустите линии заголовка и просмотрите / обработайте линии хвоста.
Если я найду время, я создам такой пакетный файл и отправлю его сюда.
РЕДАКТИРОВАТЬ:
tail.bat
источник
Я недавно использовал Mtail, и, похоже, он работает хорошо. Это тип GUI, подобный baretail, упомянутому выше.
источник
Загрузите команду tail, часть
Windows Server 2003 Resource Kit Tools
от самой Microsoft .источник
Попробуйте службы Windows для UNIX . Предоставляет снаряды, awk, sed и т. Д., А также хвост.
Обновление -: К сожалению, с 2019 года эта система больше не доступна в Центре загрузки Microsoft.
источник
Я предпочитаю TailMe из-за возможности одновременного просмотра нескольких файлов журнала в одном окне: http://www.dschensky.de/Software/Staff/tailme_en.htm
источник
DOS не имеет команды хвоста; Вы можете скачать бинарный файл Windows для хвоста GNU и другие инструменты GNU здесь .
источник
Другой вариант - установить MSYS (более легкий, чем Cygwin).
источник
DOS
type
работает как * nuxcat
, хотя точно так жеcat
, как и дамп всего файла, так что это не совсем правдаtail
, но он будет доступен в крайнем случае без загрузки / установки истиннойtail
замены.источник
Я только что написал этот маленький пакетный скрипт. Он не такой сложный, как «хвост» Unix, но, надеюсь, кто-то может добавить к нему, чтобы улучшить его, например, ограничить вывод последними 10 строками файла и т. Д. Если вы улучшаете этот скрипт, пожалуйста, отправьте его мне в ограблении ~ [в] ~ gmail.com.
источник
echo.
завершающую точку в слове (а не как отдельный аргумент), она напечатает одну новую строку.Команда
tail
и многие другие доступны в пакете инструментов Windows Resource Kit .источник
Если вы хотите использовать порты Win32 некоторых утилит Unix (вместо установки Cygwin), я рекомендую утилиты GNU для Win32 .
Легче, чем Cygwin, и более портативный.
источник
Установите MKS Toolkit ... чтобы вы могли запускать все команды Unix в Windows.
Команда:
источник
В Far Manager нажмите F3на файл, чтобы войти в стандартную программу просмотра, затем нажмите Endклавишу, чтобы перейти к концу файла.
Если файл обновлен, Far Manager прокрутит его автоматически.
источник
Я использую Kiwi Log Viewer . Это бесплатно.
источник
Графические средства просмотра журналов, хотя они могут быть очень хороши для просмотра файлов журналов, не удовлетворяют потребности в утилите командной строки, которая может быть включена в сценарии (или пакетные файлы). Часто такую простую и универсальную команду можно использовать как часть специализированного решения для конкретной среды. Графические методы не подходят для такого использования.
источник
Вы также можете попробовать WinTail .
ََ
источник
Я думаю, что нашел утилиту, которая удовлетворяет потребность в функции хвоста в пакетных файлах. Это называется "Mtee", и это бесплатно. Я включил его в пакетный файл, над которым я работаю, и он отлично справляется со своей задачей. Просто убедитесь, что поместили исполняемый файл в каталог в выражении PATH, и все - и все.
Вот ссылка:
MTEE
источник