Tak naprawdę jest ogon dla XP, po prostu Microsoft nie instaluje go ze standardową wersją XP; spakowali go w „Windows Server 2003 Resource Kit Tools”. Możesz go pobrać tutaj: microsoft.com/downloads/…
mobaXTerm, jest darmowy i ma dziennik wtyczek, możesz zrobić tail -f /drives/c/logs/mylog.log
surfealokesea
3
Nie sądzę, że powinno to zostać zamknięte, ponieważ potrzebuję tego samego do debugowania śledzenia w mojej aplikacji Windows. Chodzi o „narzędzia programowe powszechnie używane przez programistów”, które są na ten temat
kristianp
Odpowiedzi:
137
Sugeruję zainstalowanie czegoś takiego jak GNU Utilities dla Win32 . Ma większość ulubionych, w tym ogon.
Właśnie próbowałem użyć GNU tailna pliku 2 GB i dusił się. moredziałało dobrze (przynajmniej przeglądając początek pliku).
Eric J.
@EricJ., To samo dla mnie. Na pliku 3 GB mogę zrobić, headale nie tail... Pomysły?
Alphaaa,
@Alphaaa: Podejrzewam, że ma to związek z wywołaniami systemu operacyjnego używanymi przez GNU Utilities. Zobacz stackoverflow.com/a/4003487/141172
Eric J.
@EricJ., Dzięki, to wydaje się być rzeczywiście istotne. Ale właśnie zdałem sobie sprawę, że łatwiej jest mi użyć obejścia: po prostu napiszę prosty skrypt, który robi tail:)
Warto o tym wiedzieć; dzięki. Ale miałem z tym kilka problemów (w systemie Windows 7). (1) wyświetla cały plik (nie nadaje się do ogromnego pliku dziennika, dlatego tailmoże być przydatny) (2) nie jest tak dynamiczny, jak bym chciał (może z powodu zmian systemu operacyjnego / systemu plików między moją instalacją a innymi plakatami ?). To znaczy, ustaliłem, że powłoka Get-Contentczasami się nie aktualizuje, dopóki nie uruchomię dirinnej powłoki.
mpontillo
10
Myślę, że warto wspomnieć, że PowerShell wstrzyma przewijanie / wyjście, jeśli wybierzesz coś w oknie terminala, aby dać ci szansę na czytanie, kopiowanie / wklejanie itp. Jeśli naciśniesz Enter, wznowi przewijanie.
cbednarski
18
PowerShell 3 wprowadza parametr -Tail w celu uwzględnienia tylko ostatnich x linii
Stefan Haberl
8
Czy poprawna odpowiedź na PowerShell nie powinna być czymś takim Get-Content -Tail 100 -Wait .\logfile.log?
Henno Vermeulen
62
Zawsze używałem Baretail do tailowania w Windowsie. Jest darmowy i całkiem ładny.
Edytuj: dla lepszego opisu Baretail zobacz to pytanie
To okazało się pierwszym rozwiązaniem, które działało dla mnie na [gulp] Windows Server 2003 R2 SP1! Super łatwe z instalatorem, pracował od razu po wyjęciu z pudełka :)
cellepo
Pobieranie i wykonywanie niepodpisanych plików wykonywalnych przez HTTP prawdopodobnie nie jest dobrym pomysłem. Przynajmniej należy pobrać za pośrednictwem strony HTTPS .
Zero3
Wydaje mi się niesamowite, że nadal utrzymują witrynę i aktualizują certyfikat SSL, a oprogramowanie nie aktualizuje się od 2006 roku. Działa to jednak dobrze. Dokładnie to, czego potrzebowałem. Program Windows Defender nie znajduje zagrożenia.
Każdy zainteresowany ogonem DOS CMD za pomocą poleceń wsadowych (patrz poniżej).
To nie jest prefekt, a linie czasami się powtarzają.
Zastosowanie: 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
Jest to sprytne i chcę korzystać z istniejących funkcji, gdy pobieranie narzędzia nie jest opcją! Ten kod zje jednak procesor, ponieważ będzie ciągle wirował w odpowiedzi na -f.
armstrhb
1
miał ten sam problem z pobieraniem i jedzeniem procesora! dodał ten wiersz ping 127.0.0.1 -n 2 > nulwcześniej goto followloop. wysyła dwa pingi i czeka 1 sekundę między nimi. więc pozwoliłoby to żyć cpu!: D
Mohsen ZareZardeyni
Niesamowite! Dziękuję bardzo
John Fairbanks,
1
po co stosować ping, jeśli można go wykorzystać timeout /t 2?
namezero
23
Istnieje wiele opcji, jednak wszystkie mają wady z bardziej zaawansowanymi funkcjami.
Ogon GnuWin32 jest wadliwy ( α β γ ) - rzeczy takie jak -f po prostu nie działają.
Ogon UnxUtils wydaje się lepszy (-f działa, ale --pid wydaje się nie działać, -n ale nie --lines = n kończy się niepowodzeniem z -f), ale wydaje się być martwym projektem.
Cygwin to duża brzydka papka, być może mogłaby po prostu użyć biblioteki DLL i pakietu coreutils - ale nadal ma problemy, takie jak - nie działa z natywnymi procesami win32.
Nigdzie nie widziałem Log Expert wśród odpowiedzi tutaj.
Można go dostosować i jest całkiem dobry do przeglądania plików dziennika. Jak dotąd jest to dla mnie najlepsza przeglądarka graficznych dzienników systemu Windows.
Niestety, to oprogramowanie nie jest już dostępne. Możesz przeczytać o tym na archive.org .
Uwielbiam funkcje Log Expert, jednak moje doświadczenie nie działa z nim w systemie Windows 7 64-bit.
Clay
Brakuje mi funkcji „wyraźnego widoku”.
Daniel Hári
13
Jeśli nie chcesz nic instalować, możesz „zbudować własny” plik wsadowy, który wykonuje zadanie na podstawie standardowych poleceń systemu Windows. Oto kilka wskazówek, jak to zrobić.
1) Korzystając z find / c / v "" pliku.input " , uzyskaj liczbę linii w pliku wejściowym. Wynik jest podobny do:
---------- T.TXT: 15
2) Używając for / f , przeanalizuj to wyjście, aby uzyskać liczbę 15.
3) Za pomocą set / a obliczyć liczbę linii, które należy pominąć
4) Używając for / f "skip = n" pomiń nagłówki i wykonaj echo / przetworz linie ogona.
Jeśli znajdę czas, zbuduję taki plik wsadowy i opublikuję go tutaj.
EDYTOWAĆ: 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
Oto część poprzedniego wyjaśnienia. Wyświetla 10 ostatnich wierszy bieżącego pliku: ____ for / f "tokens = 3" %% f in ('find / c / v ""% 0') ustaw nbLines = %% f ____ set / a nbSkippedLines = % nbLines% -10 ____ dla / f "skip =% nbSkippedLines% delims =" %% d in (% 0) echo %% d
Nicolas
1
Właśnie tego chce plakat i działa dobrze.
Jackie Yeh,
Dzięki za kod! Dodałem go do odpowiedzi z poprawionym numerem parametru i dodatkowym do liczby linii. Zauważ, że wyświetli linie wyjście. PS: Użyłem go do ogonienia pliku 1,5 Gb i uzyskałem wyniki w zaledwie 15 sekund.
Leopoldo Sanczyk
Właściwie w kroku # 4 byłoby jeszcze lepiej pomyśleć o użyciu polecenia „więcej”, które przyjmuje parametry co do liczby linii do pominięcia. Myślę, że nawet szybciej.
Philibert Perusse
8
Ostatnio używałem Mtail i wydaje się, że działa dobrze. Jest to typ GUI, jak wspomniany powyżej baretail.
Naprawdę? Biegasz wokół czteroletnich odpowiedzi w głosowaniu w dół? Sposób na wniesienie wkładu.
Dave
9
@Dave: Mimo że pytanie jest stare, ludzie wciąż na nie patrzą, starając się znaleźć najlepszą odpowiedź. Jeśli odpowiedź sprzed prawie 5 lat nie jest już aktualna ani trafna, to dlaczego nie należy głosować za nią? Cała ta strona polega na szybszym uzyskiwaniu cennych informacji - dziś, nie 5 lat temu.
Oliver
1
@Hellfire - powinieneś edytować odpowiedź z zastrzeżeniem, że nie działa ona z Wwindows 7. Głupotą jest komentowanie.
DOS typedziała jak * nux cat, chociaż tak samo cat, zrzuca cały plik, więc to nie jest tak naprawdę prawda tail, ale będzie dostępny w mgnieniu oka bez pobierania / instalowania prawdziwego tailzamiennika.
Właśnie napisałem ten mały skrypt partii. Nie jest tak wyrafinowany jak „ogon” Uniksa, ale mam nadzieję, że ktoś może go dodać, aby go ulepszyć, na przykład ograniczając wyjście do 10 ostatnich linii pliku itp. Jeśli ulepszysz ten skrypt, prześlij go do mnie na rabowaniu ~ [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
fajny pomysł za pomocą polecenia „typ”, ale nie można do niego potokować!
eadmaster
To po prostu powoduje ponowne załadowanie pliku tekstowego.
wsadowa wersja echa ma dziwne zachowanie, jeśli nie otrzyma żadnych argumentów, po prostu wyjdzie, ale jeśli wywołasz polecenie jak echo.z kropką na słowie (a nie jako osobny argument), wypisze pojedynczy nowy wiersz.
Graficzne przeglądarki dzienników, chociaż mogą być bardzo dobre do przeglądania plików dziennika, nie spełniają potrzeby narzędzia wiersza poleceń, które można włączyć do skryptów (lub plików wsadowych). Często takie proste i ogólne polecenie może być używane jako część specjalistycznego rozwiązania dla określonego środowiska. Metody graficzne nie nadają się do takiego użycia.
Myślę, że znalazłem narzędzie, które spełnia potrzebę funkcji tail w plikach wsadowych. Nazywa się „mtee” i jest bezpłatny. Włączyłem go do pliku wsadowego, nad którym pracuję, i robi to bardzo dobrze. Wystarczy umieścić plik wykonywalny w katalogu w instrukcji PATH i gotowe.
Odpowiedzi:
Sugeruję zainstalowanie czegoś takiego jak GNU Utilities dla Win32 . Ma większość ulubionych, w tym ogon.
źródło
tail
na pliku 2 GB i dusił się.more
działało dobrze (przynajmniej przeglądając początek pliku).head
ale nietail
... Pomysły?tail
:)Jeśli używasz programu PowerShell, działa to:
Publikowanie komentarza Stefana od dołu, aby ludzie nie przegapili tego
PowerShell 3 wprowadza parametr -Tail w celu uwzględnienia tylko ostatnich x linii
źródło
tail
może być przydatny) (2) nie jest tak dynamiczny, jak bym chciał (może z powodu zmian systemu operacyjnego / systemu plików między moją instalacją a innymi plakatami ?). To znaczy, ustaliłem, że powłokaGet-Content
czasami się nie aktualizuje, dopóki nie uruchomiędir
innej powłoki.Get-Content -Tail 100 -Wait .\logfile.log
?Zawsze używałem Baretail do tailowania w Windowsie. Jest darmowy i całkiem ładny.
Edytuj: dla lepszego opisu Baretail zobacz
to pytanieźródło
Możesz zdobyć ogon jako część Cygwin .
źródło
Każdy zainteresowany ogonem
DOSCMD za pomocą poleceń wsadowych (patrz poniżej).To nie jest prefekt, a linie czasami się powtarzają.
Zastosowanie: tail.bat -d tail.bat -f -f
źródło
ping 127.0.0.1 -n 2 > nul
wcześniejgoto followloop
. wysyła dwa pingi i czeka 1 sekundę między nimi. więc pozwoliłoby to żyć cpu!: Dtimeout /t 2
?Istnieje wiele opcji, jednak wszystkie mają wady z bardziej zaawansowanymi funkcjami.
Ogon GnuWin32 jest wadliwy ( α β γ ) - rzeczy takie jak -f po prostu nie działają.
Ogon UnxUtils wydaje się lepszy (-f działa, ale --pid wydaje się nie działać, -n ale nie --lines = n kończy się niepowodzeniem z -f), ale wydaje się być martwym projektem.
Cygwin to duża brzydka papka, być może mogłaby po prostu użyć biblioteki DLL i pakietu coreutils - ale nadal ma problemy, takie jak - nie działa z natywnymi procesami win32.
źródło
Użyłem Tail For Windows . Z pewnością nie tak elegancki jak używanie
ale używasz Windowsa. ;)źródło
Dzięki Windows PowerShell możesz używać:
źródło
Nigdzie nie widziałem Log Expert wśród odpowiedzi tutaj.
Można go dostosować i jest całkiem dobry do przeglądania plików dziennika. Jak dotąd jest to dla mnie najlepsza przeglądarka graficznych dzienników systemu Windows.
Niestety, to oprogramowanie nie jest już dostępne. Możesz przeczytać o tym na archive.org .
źródło
Jeśli nie chcesz nic instalować, możesz „zbudować własny” plik wsadowy, który wykonuje zadanie na podstawie standardowych poleceń systemu Windows. Oto kilka wskazówek, jak to zrobić.
1) Korzystając z find / c / v "" pliku.input " , uzyskaj liczbę linii w pliku wejściowym. Wynik jest podobny do:
2) Używając for / f , przeanalizuj to wyjście, aby uzyskać liczbę 15.
3) Za pomocą set / a obliczyć liczbę linii, które należy pominąć
4) Używając for / f "skip = n" pomiń nagłówki i wykonaj echo / przetworz linie ogona.
Jeśli znajdę czas, zbuduję taki plik wsadowy i opublikuję go tutaj.
EDYTOWAĆ:
tail.bat
źródło
Ostatnio używałem Mtail i wydaje się, że działa dobrze. Jest to typ GUI, jak wspomniany powyżej baretail.
źródło
Pobierz polecenia tail, część
Windows Server 2003 Resource Kit Tools
z Microsoft samego.źródło
Wypróbuj Usługi Windows dla UNIX . Zapewnia muszle, awk, sed itp., A także ogon.
Aktualizacja -: Niestety, od 2019 roku ten system nie jest już dostępny w Centrum pobierania Microsoft.
źródło
Wolę TailMe ze względu na możliwość oglądania kilku plików dziennika jednocześnie w jednym oknie: http://www.dschensky.de/Software/Staff/tailme_en.htm
źródło
DOS nie ma polecenia ogona; możesz pobrać plik binarny Windows dla GNU tail i innych narzędzi GNU tutaj .
źródło
Inną opcją byłoby zainstalowanie MSYS (który jest bardziej lekki niż Cygwin).
źródło
DOS
type
działa jak * nuxcat
, chociaż tak samocat
, zrzuca cały plik, więc to nie jest tak naprawdę prawdatail
, ale będzie dostępny w mgnieniu oka bez pobierania / instalowania prawdziwegotail
zamiennika.źródło
Właśnie napisałem ten mały skrypt partii. Nie jest tak wyrafinowany jak „ogon” Uniksa, ale mam nadzieję, że ktoś może go dodać, aby go ulepszyć, na przykład ograniczając wyjście do 10 ostatnich linii pliku itp. Jeśli ulepszysz ten skrypt, prześlij go do mnie na rabowaniu ~ [at] ~ gmail.com.
źródło
echo.
z kropką na słowie (a nie jako osobny argument), wypisze pojedynczy nowy wiersz.tail
Poleceń i wiele innych dostępne są w Narzędzia Windows Resource Kit pakietu.źródło
Jeśli chcesz korzystać z portów Win32 niektórych narzędzi Uniksa (zamiast instalować Cygwin), polecam narzędzia GNU dla Win32 .
Lżejsza niż Cygwin i bardziej przenośna.
źródło
Zainstaluj MKS Toolkit ... Abyś mógł uruchamiać wszystkie polecenia Uniksa w systemie Windows.
Polecenie to:
źródło
W programie Far Manager naciśnij F3plik, aby przejść do standardowej przeglądarki, a następnie Endklawisz, aby przejść do końca pliku.
Jeśli plik zostanie zaktualizowany, Far Manager przewinie go automatycznie.
źródło
Używam przeglądarki dzienników Kiwi . Jest wolne.
źródło
Graficzne przeglądarki dzienników, chociaż mogą być bardzo dobre do przeglądania plików dziennika, nie spełniają potrzeby narzędzia wiersza poleceń, które można włączyć do skryptów (lub plików wsadowych). Często takie proste i ogólne polecenie może być używane jako część specjalistycznego rozwiązania dla określonego środowiska. Metody graficzne nie nadają się do takiego użycia.
źródło
Możesz także spróbować WinTail .
ََ
źródło
Myślę, że znalazłem narzędzie, które spełnia potrzebę funkcji tail w plikach wsadowych. Nazywa się „mtee” i jest bezpłatny. Włączyłem go do pliku wsadowego, nad którym pracuję, i robi to bardzo dobrze. Wystarczy umieścić plik wykonywalny w katalogu w instrukcji PATH i gotowe.
Oto link:
mtee
źródło