यूनिक्स टेल कमांड के बराबर एक विंडोज [बंद]


410

मैं यूनिक्स 'टेल' कमांड के बराबर की तलाश कर रहा हूं जो मुझे लॉग फाइल के आउटपुट को देखने की अनुमति देगा जबकि इसे लिखा जा रहा है।


क्या यह मदद करता है? http://malektips.com/xp_dos_0001.html http://commandwindows.com/server2003tools.htm यहाँ प्रत्यक्ष Microsoft लिंक है। मैंने इसे अपनी मशीन पर परीक्षण किया है (सिर्फ जिज्ञासा से बाहर और क्योंकि मुझे इसकी आवश्यकता हो सकती है) और यह ठीक काम करता है।
जॉनी

1
वास्तव में XP के लिए पूंछ है, यह सिर्फ इतना है कि Microsoft इसे XP के मानक संस्करण के साथ स्थापित नहीं करता है; उन्होंने इसे 'विंडोज सर्वर 2003 रिसोर्स किट टूल्स' में पैक किया। आप इसे यहां प्राप्त कर सकते हैं: microsoft.com/downloads/…
मैट पॉश

1
अतिश्योक्ति न करें, लेकिन यहां देखें stackoverflow.com/questions/247234/…
मार्टिन बेकेट

mobaXTerm, यह मुफ़्त है और प्लगइन्स का एक लॉग है, आप पूंछ -f /drives/c/logs/mylog.log
surfealokesea

3
मुझे नहीं लगता कि इसे बंद किया जाना चाहिए था, क्योंकि मुझे अपने विंडोज़ एप्लिकेशन में ट्रेसिंग डिबग करने के लिए इसी चीज़ की आवश्यकता है। यह "प्रोग्रामर्स द्वारा आमतौर पर उपयोग किए जाने वाले सॉफ़्टवेयर टूल" के बारे में है, जो कि विषय पर है
kristianp

जवाबों:


137

मैं Win32 के लिए GNU यूटिलिटीज की तरह कुछ स्थापित करने का सुझाव दूंगा । यह पूंछ सहित सबसे पसंदीदा है।


5
मैंने बस tail2GB फ़ाइल पर GNU का उपयोग करने की कोशिश की और यह घुट गया। moreठीक काम किया (कम से कम फ़ाइल की शुरुआत को देखते हुए)।
एरिक जे।

@ एरिक जे।, मेरे लिए वही। एक 3 जीबी फ़ाइल पर मैं कर सकता हूं ... विचार headनहीं tail?
अल्फा

@ आलफा: मुझे संदेह है कि इसका जीएनयू यूटिलिटीज द्वारा उपयोग किए जाने वाले ओएस कॉल के साथ क्या करना है। देखें stackoverflow.com/a/4003487/141172
एरिक जे

@ EricJ।, धन्यवाद, जो वास्तव में प्रासंगिक लगता है। लेकिन मैं सिर्फ महसूस किया कि यह आसान है मुझे एक समाधान का उपयोग करने के लिए: मैं सिर्फ एक सरल स्क्रिप्ट है कि एक करता है लिखने के लिए जा रहा हूँ tail:)
Alphaaa

1
यहाँ मेरा मानना ​​है कि एक बेहतर उपाय है: stackoverflow.com/questions/4426442/…
गोबर

441

यदि आप PowerShell का उपयोग करते हैं तो यह काम करता है:

Get-Content filenamehere -Wait -Tail 30

स्टीफन की टिप्पणी को नीचे से पोस्ट करना, ताकि लोग इसे याद न करें

PowerShell 3 केवल अंतिम x पंक्तियों को शामिल करने के लिए एक -टाल पैरामीटर पेश करता है


13
वास्तव में यह गतिशील नहीं है
जेई गीथन

16
इस बारे में जानना अच्छा है; धन्यवाद। लेकिन मुझे इसके साथ कुछ समस्या थी (विंडोज 7 पर)। (1) यह संपूर्ण फ़ाइल को प्रदर्शित करता है (बड़े पैमाने पर लॉग फ़ाइल के लिए अच्छा नहीं है, जो tailउपयोगी हो सकता है) (2) यह उतना गतिशील नहीं है जितना मैं चाहूंगा (शायद मेरे सेटअप और अन्य पोस्टरों के बीच ओएस / फाइल सिस्टम में बदलाव के कारण) ?)। यही है, मैंने निर्धारित किया कि Get-Contentजब तक मैं dirकिसी अन्य शेल में नहीं चलता तब तक शेल कर रहा है ।
एमपॉन्टिलो

10
मुझे लगता है कि यदि आप टर्मिनल विंडो के अंदर कुछ का चयन करते हैं, तो आपको पढ़ने, कॉपी / पेस्ट करने आदि का मौका देने के लिए पावरस्ले स्क्रॉल को रोक देगा।
cbednarski

18
PowerShell 3 में केवल अंतिम x लाइनों को शामिल करने के लिए एक -टाल पैरामीटर प्रस्तुत किया गया है
स्टीफन हैबरल

8
तो क्या Powershell के लिए सही उत्तर कुछ ऐसा नहीं होना चाहिए Get-Content -Tail 100 -Wait .\logfile.log?
हेन्नो वर्म्यूलेन

62

मैंने हमेशा विंडोज में पूँछ लगाने के लिए Baretail का उपयोग किया है । यह मुफ़्त है और बहुत अच्छा है।

संपादित करें: Baretail के बेहतर विवरण के लिए यह प्रश्न देखें


यह 1 समाधान था जो मेरे लिए काम कर रहा था [gulp] विंडोज सर्वर 2003 R2 SP1! इंस्टॉलर के साथ सुपर आसान, बॉक्स के बाहर ठीक से सिलाई के लिए काम किया :)
cellepo

HTTP पर अहस्ताक्षरित निष्पादन को डाउनलोड करना और निष्पादित करना शायद एक अच्छा विचार नहीं है। बहुत कम से कम, एक को अपने HTTPS साइट के माध्यम से डाउनलोड करना चाहिए ।
जीरो 3

मुझे यह आश्चर्यजनक लगा कि वे साइट को बनाए रखते हैं और आज तक एसएसएल प्रमाणपत्र को अपडेट करते हैं, जबकि सॉफ्टवेयर 2006 से अपग्रेड नहीं करता है। हालांकि यह ठीक काम करता है। बिल्कुल वही जो मुझे चाहिए था। विंडोज डिफेंडर को कोई खतरा नहीं है।
लियोनेट चेन


24

बैच कमांड्स (नीचे देखें) का उपयोग करके 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

यह चतुर है, और मैं एक उपकरण डाउनलोड करते समय कोई विकल्प नहीं होने पर मौजूदा कार्यक्षमता का उपयोग करने के बारे में हूँ! यह कोड हालांकि सीपीयू खाएगा, क्योंकि यह लगातार फॉलोअप में बदल जाएगा।
आर्मस्ट्रांग

1
डाउनलोड और खाने के साथ एक ही समस्या थी! इस लाइन को ping 127.0.0.1 -n 2 > nulपहले जोड़ा goto followloop। यह दो पिंग भेजता है और 1 सेकंड के बीच इंतजार करता है। तो यह सीपीयू को जीवित रहने
देगा!:

बहुत बढ़िया! बहुत बहुत धन्यवाद
जॉन फेयरबैंक्स

1
यदि आप उपयोग कर सकते हैं तो पिंग को रोजगार क्यों दें timeout /t 2?
namezero

23

काफी सारे विकल्प हैं, हालांकि उनमें से सभी में अधिक उन्नत सुविधाओं के साथ खामियां हैं।

  • GnuWin32 पूंछ गाड़ी है ( अल्फा बीटा गामा ) - -f तरह बातें सिर्फ सादा काम नहीं करते।

  • UnxUtils की पूंछ बेहतर लगती है (-f काम करता है, लेकिन --id लगता है कि नहीं, -n लेकिन नहीं --lines = n -f के साथ विफल रहता है), लेकिन एक मृत परियोजना प्रतीत होती है।

  • साइग्विन एक बड़ा बदसूरत फल है, शायद डीएलएल और कोरुटिल्स पैकेज का उपयोग कर सकता है - लेकिन अभी भी समस्या है - जैसे कि मूल win32 प्रक्रियाओं के साथ काम नहीं कर रहा है।


19

मैंने विंडोज के लिए टेल का इस्तेमाल किया है । निश्चित रूप से उपयोग के रूप में सुरुचिपूर्ण नहीं है

पूंछ
लेकिन फिर, आप विंडोज का उपयोग कर रहे हैं। ;)


मैं विंडोज के लिए दूसरी पूंछ। मुझे यह पसंद है क्योंकि मैं एक ही विंडो में कई फ़ाइलों को खोल और मॉनिटर कर सकता हूं।
पॉल

यदि आप एक पॉश 1 या पॉश 2.x पर हैं, तो शक्तियाँ gc -tail तरीका काम नहीं करता है। पॉश 3.0 में gc -tail कार्यक्षमता जोड़ी गई थी।
user1390375

16

Windows PowerShell के साथ आप उपयोग कर सकते हैं:

Get-Content <file> -Wait

15

मैंने जवाबों के बीच कहीं भी लॉग एक्सपर्ट नहीं देखा है।

यह अनुकूलन योग्य है और लॉग फ़ाइलों के आसपास जाने के लिए काफी अच्छा है। अब तक यह मेरे लिए सबसे अच्छा विंडोज ग्राफिकल लॉग दर्शक है।

दुर्भाग्य से, यह सॉफ़्टवेयर अब उपलब्ध नहीं है। आप इसके बारे में आर्काइव.ऑर्ग पर पढ़ सकते हैं ।


मैं लॉग एक्सपर्ट की सुविधाओं से प्यार करता हूं, हालांकि मेरा अनुभव विन 7 64 बिट पर इसके साथ छोटा है।
क्ले

मुझे "स्पष्ट दृश्य" कार्यक्षमता याद आती है।
डैनियल हैरी

13

यदि आप कुछ भी स्थापित नहीं करना चाहते हैं तो आप मानक विंडोज कमांड से "अपनी खुद की" बैच फ़ाइल का निर्माण कर सकते हैं। यहाँ कुछ संकेत हैं कि यह कैसे करना है।

1) find / c / v "" yourinput.file का उपयोग करके , अपनी इनपुट फ़ाइल में लाइनों की संख्या प्राप्त करें। आउटपुट कुछ इस तरह है:

---------- T.TXT: 15

2) / एफ के लिए उपयोग करते हुए , 15 नंबर पाने के लिए इस आउटपुट को पार्स करें।

3) सेट / ए का उपयोग करके , सिर की रेखाओं की संख्या की गणना करें जिन्हें छोड़ना आवश्यक है

4) के लिए / f "स्किप = एन" का उपयोग करके हेड लाइन्स को छोड़ें और टेल लाइन्स को इको / प्रोसेस करें।

अगर मुझे समय मिलता है, तो मैं इस तरह की एक बैच फ़ाइल बनाऊंगा और इसे यहाँ पोस्ट करूँगा।

संपादित करें: 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

5
यहाँ पिछले स्पष्टीकरण का बैच है। यह वर्तमान फ़ाइल की अंतिम 10 पंक्तियों को प्रदर्शित करता है: ____ for / f "tokens = 3" %% f in ('find / c / v ""% 0') do nbLines = %% f ____ सेट / nSSkippedLines = सेट करें % nbLines% -10 ____ के लिए / f "स्किप =% nbSkippedLines% delims =" %% d में (% 0) do echo %% d
निकोलस

1
यह वही है जो पोस्टर चाहता है, और यह ठीक काम करता है।
जैकी येह

कोड के लिए धन्यवाद! मैंने इसे सही पैरामीटर संख्या और लाइनों की संख्या के लिए एक अतिरिक्त के साथ उत्तर में जोड़ा। ध्यान दें कि यह लाइनों को एक निकास प्रदर्शित करेगा। PS: मैंने इसका इस्तेमाल 1.5Gb फाइल को टेल करने के लिए किया और परिणाम सिर्फ 15 सेकंड में प्राप्त कर लिया।
लियोपोल्डो सान्ज़की 3

वास्तव में, चरण # 4 पर यह बेहतर होगा कि मैं कमांड 'अधिक' का उपयोग करने के लिए सोचूं जो कि लाइनों को छोड़ने के लिए लाइनों की संख्या के रूप में एक पैरामीटर लेता है। और भी जल्दी मैं सोचूंगा।
फिलीबर्ट पेरूस

8

मैंने हाल ही में मेल का उपयोग किया है और यह अच्छी तरह से काम करता है। यह GUI प्रकार है, जैसा ऊपर उल्लेख किया गया है। यहां छवि विवरण दर्ज करें


5

डाउनलोड पूंछ आदेश, के हिस्से Windows Server 2003 Resource Kit Toolsसे माइक्रोसॉफ्ट ही।


1
क्या आपको यह अजीब नहीं लगता कि यह लिंक कैसा दिखता है जैसे यह Microsoft की ओर इशारा करता है, लेकिन यह नहीं है? :)
टॉमालक


5

UNIX के लिए Windows सेवाएँ आज़माएँ । पूंछ के रूप में गोले, awk, sed, आदि प्रदान करता है।

अद्यतन -: दुर्भाग्य से, 2019 तक यह प्रणाली Microsoft डाउनलोड केंद्र पर उपलब्ध नहीं है।


1
यह Win7 और नए पर समस्याएँ हैं।
डग विल्सन

1
वास्तव में? आप लगभग चार साल पुराने उत्तर-मतदान में भाग रहे हैं? योगदान करने का तरीका।
डेव

9
@Dave: सवाल पुराना होने के बावजूद, लोग अभी भी इसे सबसे अच्छा जवाब खोजने की कोशिश कर रहे हैं। यदि लगभग 5 साल पहले भी इसका कोई उत्तर प्रासंगिक या अच्छा नहीं है, तो किसी को इसका जवाब क्यों नहीं देना चाहिए? यह पूरी साइट तेजी से मूल्यवान जानकारी प्राप्त करने के बारे में है - आज नहीं, 5 साल पहले।
ओलिवर

1
@ हेलफायर - आपको उत्तर को प्रोविज़न के साथ संपादित करना चाहिए कि यह Wwindows 7 के साथ काम नहीं करता है। यह सिर्फ टिप्पणी करने के लिए मूर्खतापूर्ण है।
प्रीत संघ


4

डॉस की कोई पूंछ कमांड नहीं है; आप GNU टेल और अन्य GNU टूल्स के लिए विंडोज बाइनरी डाउनलोड कर सकते हैं



4

डॉस के typeकाम जैसे * नक्स cat, हालांकि cat, यह पूरी फाइल को डंप करता है, इसलिए यह वास्तव में सही नहीं है tail, लेकिन यह एक सच्चे tailविकल्प को डाउनलोड / इंस्टॉल किए बिना चुटकी में उपलब्ध होने वाला है ।


4

मैंने बस इस छोटी सी स्क्रिप्ट को लिखा था। यह यूनिक्स "पूंछ" की तरह परिष्कृत नहीं है, लेकिन उम्मीद है कि कोई इसे सुधारने के लिए इसमें जोड़ सकता है, जैसे आउटपुट को फ़ाइल की अंतिम 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

"प्रकार" कमांड का उपयोग करके अच्छा विचार है, लेकिन आप इसे पाइप नहीं कर सकते हैं!
eadमास्टर

यह केवल पाठ फ़ाइल को पुनः लोड करता रहता है।

इको के बैच संस्करण में अजीब व्यवहार होता है, यदि कोई तर्क नहीं दिया जाता है तो यह बाहर निकलता है, लेकिन यदि आप echo.शब्द पर अनुगामी बिंदु के रूप में कमांड (और एक अलग तर्क के रूप में नहीं) कहते हैं, तो यह एक नई पंक्ति को प्रिंट करेगा।
स्कगर

4

tailआदेश और कई अन्य लोगों में उपलब्ध हैं विंडोज संसाधन किट उपकरण पैकेज।


मैंने इस टेल कमांड का उपयोग करने की कोशिश की, और टेल-एन के लिए, यह वास्तव में अंतिम n + 1 लाइनों को प्रिंट करने के लिए प्रतीत होता है
ajs410


3

यदि आप कुछ यूनिक्स उपयोगिताओं के Win32 बंदरगाहों (सिगविन स्थापित करने के बजाय) का उपयोग करना चाहते हैं, तो मैं Win32 के लिए GNU उपयोगिताओं की सलाह देता हूं ।

साइगविन की तुलना में हल्का वजन और अधिक पोर्टेबल।



3

में सुदूर प्रबंधक , प्रेस F3एक फ़ाइल पर मानक दर्शक प्रवेश करने के लिए है, तोEnd फ़ाइल के अंत में नेविगेट करने के लिए महत्वपूर्ण।

यदि फ़ाइल अपडेट की जाती है, तो Far Manager इसे स्वचालित रूप से स्क्रॉल करेगा।



0

ग्राफ़िकल लॉग दर्शक, जबकि वे लॉग फ़ाइलों को देखने के लिए बहुत अच्छे हो सकते हैं, कमांड लाइन उपयोगिता की आवश्यकता को पूरा नहीं करते हैं जिन्हें स्क्रिप्ट (या बैच फ़ाइलों) में शामिल किया जा सकता है। अक्सर इस तरह के एक सरल और सामान्य-उद्देश्य कमांड का उपयोग किसी विशेष वातावरण के लिए विशेष समाधान के हिस्से के रूप में किया जा सकता है। चित्रमय विधियाँ ऐसे उपयोग के लिए स्वयं को आसानी से उधार नहीं देती हैं।



0

मुझे लगता है कि मुझे एक उपयोगिता मिल गई है जो बैच फ़ाइलों में टेल फ़ंक्शन की आवश्यकता को पूरा करती है। इसे "मैटी" कहा जाता है, और यह मुफ़्त है। मैंने इसे एक बैच फ़ाइल में शामिल किया है जिस पर मैं काम कर रहा हूं और यह बहुत अच्छी तरह से काम करता है। बस निष्पादन निर्देशिका को PATH विवरण में एक निर्देशिका में रखना सुनिश्चित करें, और आप चले जाएं।

यहाँ लिंक है:

mtee

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.