Bana yazılırken bir günlük dosyasının çıktısını izlemenize izin verecek Unix 'kuyruk' komutunun eşdeğerini arıyorum.
Bana yazılırken bir günlük dosyasının çıktısını izlemenize izin verecek Unix 'kuyruk' komutunun eşdeğerini arıyorum.
Yanıtlar:
Win32 için GNU Utilities gibi bir şey yüklemenizi öneririm . Kuyruk da dahil olmak üzere çoğu favoriye sahiptir.
tail
2GB'lık bir dosyada GNU'ları kullanmaya çalıştım ve boğuldu. more
iyi çalıştı (en azından dosyanın başlangıcını görüntüleme).
head
ama yapamıyorum tail
... Fikirler?
tail
:)
PowerShell kullanıyorsanız, bu işe yarar:
Get-Content filenamehere -Wait -Tail 30
Stefan'ın yorumunu aşağıdan gönderiyor, bu yüzden insanlar kaçırmıyor
PowerShell 3, yalnızca son x satırını içeren bir -Tail parametresi sunar
tail
yararlı olabilir) (2) istediğim kadar dinamik değil (belki kurulumum ve diğer posterler arasındaki OS / dosya sistemi değişiklikleri nedeniyle) ?). Yani, kabuğun Get-Content
bazen dir
başka bir kabukta çalışana kadar güncellenmediğini belirledim .
Get-Content -Tail 100 -Wait .\logfile.log
mı?
Baretail'i her zaman Windows'ta kuyruk yapmak için kullandım . Ücretsiz ve oldukça güzel.
Düzenleme: Baretail'in daha iyi bir açıklaması için bu soruya bakın
Cygwin'in bir parçası olarak kuyruk alabilirsiniz .
Toplu komutlar kullanarak DOS CMD kuyruğuyla ilgilenen herkes (aşağıya bakın).
Kaymakam değildir ve bazen çizgiler tekrar eder.
Kullanım: 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
ping 127.0.0.1 -n 2 > nul
önce ekledi goto followloop
. iki ping gönderir ve arasında 1 saniye bekler. bu yüzden cpu yaşamaya izin verir
timeout /t 2
?
Oldukça fazla seçenek var, ancak hepsinin daha gelişmiş özelliklere sahip kusurları var.
GnuWin32 kuyruğu buggy ( α β γ ) - -f gibi sade şeyler çalışmıyor.
UnxUtils kuyruğu daha iyi görünüyor (-f çalışıyor, ancak --pid, -n değil, --lines = n -f ile başarısız oluyor), ancak ölü bir proje gibi görünüyor.
Cygwin büyük bir çirkin lapa, belki sadece DLL ve coreutils paketini kullanabilir - ancak yine de --pid gibi yerel win32 süreçleriyle çalışmaz.
Windows için Tail kullandım . Kesinlikle kullanmak kadar zarif değil
kuyrukama sonra Windows kullanıyorsunuz. ;)
Buradaki yanıtlar arasında Log Expert'i hiçbir yerde görmedim.
Özelleştirilebilir ve günlük dosyalarını dolaşmak için oldukça iyidir. Şimdiye kadar benim için en iyi Windows grafik günlük görüntüleyicisi.
Ne yazık ki, bu yazılım artık mevcut değil. Bunu archive.org adresinden okuyabilirsiniz .
Hiçbir şey yüklemek istemiyorsanız, işi standart Windows komutlarından yapan "kendi oluştur" toplu iş dosyanızı oluşturabilirsiniz. İşte nasıl yapılacağına dair bazı işaretçiler.
1) find / c / v "" yourinput.file dosyasını kullanarak giriş dosyanızdaki satır sayısını alın. Çıktı şuna benzer:
---------- T.TXT: 15
2) for / f kullanarak 15 sayısını almak için bu çıktıyı ayrıştırın.
3) set / a kullanma , atlanması gereken kafa çizgisi sayısını hesaplayın
4) / f "skip = n" için kullanarak başlık çizgilerini atlayın ve kuyruk çizgilerini tekrarlayın / işleyin.
Zamanı bulursam, böyle bir toplu iş dosyası oluşturur ve buraya gönderirim.
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
UNIX için Windows Hizmetleri'ni deneyin . Kuyruk yanı sıra kabukları, awk, sed, vb sağlar.
Güncelleme -: Maalesef 2019'dan itibaren bu sistem artık Microsoft Yükleme Merkezi'nde mevcut değil.
Tek bir pencerede aynı anda birkaç günlük dosyası izleme imkanı nedeniyle TailMe'yi tercih ediyorum: http://www.dschensky.de/Software/Staff/tailme_en.htm
DOS sahip hiçbir kuyruk komutunu; Eğer GNU kuyruk ve diğer GNU araçları için bir Windows ikili indirebilirsiniz burada .
Başka bir seçenek yüklemek olacaktır MSYS (daha Cygwin daha: çok hafif olduğu).
Bu küçük toplu senaryoyu yazdım. Unix "kuyruğu" kadar sofistike değildir, ancak umarım birisi çıktıyı dosyanın son 10 satırıyla sınırlamak gibi ekleyebilir. Bu komut dosyasını geliştirirseniz, lütfen gönderin bana soyarak ~ [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
echo.
sonra sözcüğün sonunda bir nokta olarak (ve ayrı bir argüman olarak değil) çağırırsanız, yeni bir satır yazdırır.
tail
Komuta ve diğerleri mevcuttur Windows Kaynak Seti Araçları paketinde.
Bazı Unix yardımcı programlarının (Cygwin'i yüklemek yerine) Win32 bağlantı noktalarını kullanmak istiyorsanız, Win32 için GNU yardımcı programlarını öneririm .
Cygwin'den daha hafif ve daha taşınabilir.
MKS Toolkit'i yükleyin ... Tüm Windows Unix komutlarını çalıştırabilmeniz için.
Komut:
tail -f <file-name>
Gelen Uzak Yöneticisi , basın F3bir dosya üzerinde, sonra standart izleyiciyi girmek içinEnd dosyanın sonuna gitmek için anahtarı.
Dosya güncellenirse, Uzak Yönetici dosyayı otomatik olarak kaydırır.
Grafik günlük görüntüleyicileri, günlük dosyalarını görüntülemek için çok iyi olsalar da, komut dosyalarına (veya toplu iş dosyalarına) dahil edilebilecek bir komut satırı yardımcı programı ihtiyacını karşılamazlar. Genellikle böyle basit ve genel amaçlı bir komut, belirli bir ortam için özel bir çözümün parçası olarak kullanılabilir. Grafiksel yöntemler bu tür kullanımlara kolayca borç vermezler.
Ben toplu işlerde kuyruk fonksiyonu ihtiyacını karşılayan bir yardımcı program buldum düşünüyorum. Buna "mtee" denir ve ücretsizdir. Üzerinde çalıştığım bir toplu iş dosyasına dahil ettim ve çok güzel bir iş çıkarıyor. Yürütülebilir dosyayı PATH deyimindeki bir dizine koyduğunuzdan emin olun ve gidersiniz.
İşte bağlantı: