유닉스 테일 명령에 해당하는 Windows


410

로그 파일이 기록되는 동안 출력을 볼 수있는 Unix 'tail'명령과 동등한 기능을 찾고 있습니다.


도움이 되나요? http://malektips.com/xp_dos_0001.html http://commandwindows.com/server2003tools.htm 다음은 Microsoft 직접 링크입니다. 내 컴퓨터에서 (호기심이 많고 필요할 수도 있기 때문에) 테스트했으며 제대로 작동합니다.
johnny

1
실제로 XP 에는 꼬리 가 있습니다. Microsoft가 표준 버전의 XP로 설치하지 않는 것입니다. 그들은 'Windows Server 2003 Resource Kit Tools'에 패키지했습니다. 당신은 여기 그것을 얻을 수 있습니다 microsoft.com/downloads/...
매트 Poush

1
속임수는 아니지만 여기를 참조하십시오 stackoverflow.com/questions/247234/…
Martin Beckett

mobaXTerm, 무료이며 플러그인 로그가 있습니다. tail -f /drives/c/logs/mylog.log
surfealokesea

3
내 Windows 응용 프로그램에서 추적을 디버깅하기 위해 동일한 것이 필요하기 때문에 이것이 닫혀 있어야한다고 생각하지 않습니다. "프로그래머가 일반적으로 사용하는 소프트웨어 도구"에 관한 주제입니다.
kristianp

답변:


137

Win32 용 GNU 유틸리티 와 같은 것을 설치하는 것이 좋습니다 . 꼬리를 포함하여 가장 좋아하는 것들이 있습니다.


5
방금 tail2GB 파일에서 GNU를 사용하려고 시도했지만 질식했습니다. more잘 작동했습니다 (적어도 파일의 시작 부분을 보았습니다).
Eric J.

@EricJ., 저도 마찬가지입니다. 3GB 파일에서 할 수는 head없지만 tail... 아이디어는?
Alphaaa

@ Alphaaa : GNU 유틸리티가 사용하는 OS 호출과 관련이 있다고 생각합니다.
Eric J.

@EricJ., 정말 감사합니다. 난 그냥 않는 간단한 스크립트를 작성하는거야 :하지만 난 그냥 나에게 해결 방법을 사용하는 것이 쉽게 실현 tail:)을
Alphaaa

1
더 나은 해결책은 다음과 같습니다. stackoverflow.com/questions/4426442/…
Dung

441

PowerShell을 사용하면 다음과 같이 작동합니다.

Get-Content filenamehere -Wait -Tail 30

아래에서 Stefan의 의견을 게시하므로 사람들은 놓치지 마세요.

PowerShell 3에는 마지막 x 줄만 포함하도록 -Tail 매개 변수가 도입되었습니다


13
실제로 이것은 역동적이지 않습니다
Jey Geethan

16
이것은 알아두면 좋습니다. 감사. 그러나 Windows 7에서 몇 가지 문제가있었습니다. (1) 전체 파일을 표시합니다 (대량 로그 파일에는 좋지 않기 tail때문에 유용 할 수 있습니다) (2) 원하는대로 동적이지 않습니다 (설정과 다른 포스터 사이의 OS / 파일 시스템 변경으로 인한 것일 수 있음) ?). 즉, 다른 셸에서 Get-Content실행될 때까지 셸 이 업데이트되지 않는 것으로 확인 dir되었습니다.
mpontillo

10
터미널 창에서 무언가를 선택하면 읽기, 복사 / 붙여 넣기 등을 수행 할 때 PowerShell이 ​​스크롤 / 출력을 일시 중지한다고 언급 할 가치가 있다고 생각합니다. Enter 키를 누르면 스크롤이 다시 시작됩니다.
cbednarski

18
PowerShell을 3 소개하는 -tail 매개 변수는 마지막으로 X 선을 포함하는
스테판 Haberl

8
따라서 Powershell에 대한 정답은 다음과 같아서는 안됩니다 Get-Content -Tail 100 -Wait .\logfile.log.
Henno Vermeulen 2016 년

62

나는 항상 Windows에서 광미를 위해 Baretail 을 사용 했습니다 . 무료이며 꽤 좋습니다.

편집 : Baretail에 대한 자세한 설명은 이 질문을 참조하십시오.


이것은 [gulp] Windows Server 2003 R2 SP1에서 나를 위해 일한 첫 번째 솔루션이되었습니다! 슈퍼 쉬운 설치와, wasily 바로 밖으로 :) 상자의 미행 근무
cellepo

HTTP를 통해 서명되지 않은 실행 파일을 다운로드하여 실행하는 것은 좋지 않습니다. 최소한 HTTPS 사이트를 통해 다운로드해야 합니다 .
Zero3

2006 년 이후로 소프트웨어가 업그레이드되지 않는 동안 사이트를 유지 관리하고 SSL 인증서를 업데이트하는 것이 놀랍습니다. 정확히 내가 필요한 것. Windows Defender는 위협이 없습니다.
Lionet Chen


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

이것은 영리하며 도구를 다운로드 할 때 기존 기능을 사용하는 것이 옵션이 아닙니다! 이 코드는 -f에 대한 후속 조치로 계속 회전하므로 CPU를 소비합니다.
armstrhb

1
다운로드와 CPU를 먹는 것과 같은 문제가있었습니다! ping 127.0.0.1 -n 2 > nul전에이 줄을 추가했습니다 goto followloop. 두 개의 핑을 보내고 그 사이에 1 초 동안 기다립니다. 그래서 그것은 CPU를 살게 할 것입니다! : D
Mohsen ZareZardeyni

대박! 정말 감사합니다
John Fairbanks

1
활용할 수 있다면 왜 핑을 사용 timeout /t 2합니까?
namezero

23

많은 옵션이 있지만 모든 고급 기능에 결함이 있습니다.

  • GnuWin32 꼬리 는 버그가 있습니다 ( α β γ )--f와 같은 것은 작동하지 않습니다.

  • UnxUtils 꼬리가 더 좋아 보이지만 (-f는 작동하지만 --pid는 ~ n은 아니지만 --lines = n은 -f와 함께 실패하는 것처럼 보이지만) 죽은 프로젝트 인 것처럼 보입니다.

  • Cygwin 은 매우 추악하고, 아마도 DLL 및 coreutils 패키지를 사용할 수는 있지만 여전히 pid와 같은 문제는 네이티브 win32 프로세스에서 작동하지 않습니다.


19

내가 사용했던 Windows의 꼬리를 . 확실히 사용하는 것만 큼 우아하지는 않습니다.

꼬리
그러나 Windows를 사용하고 있습니다. ;)


나는 Windows의 두 번째 Tail입니다. 같은 창에서 여러 파일을 열고 모니터링 할 수 있기 때문에 좋아합니다.
Paul

Posh 1 또는 Posh 2.x를 사용하는 경우 powershell gc -tail 방법이 작동하지 않습니다. gc -tail 기능은 Posh 3.0에 추가되었습니다.
user1390375

16

Windows PowerShell을 사용하면 다음을 사용할 수 있습니다.

Get-Content <file> -Wait

15

나는 여기에서 답변 중 Log Expert를 보지 못했습니다.

사용자 정의 가능하며 로그 파일을 돌아 다니기에 매우 좋습니다. 지금까지는 최고의 Windows 그래픽 로그 뷰어입니다.

불행히도이 소프트웨어는 더 이상 사용할 수 없습니다. archive.org 에서 읽을 수 있습니다 .


Log Expert의 기능을 좋아하지만 Win 7 64 비트에서 경험이 부족합니다.
Clay

"명확한보기"기능이 누락되었습니다.
Daniel Hári

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

5
다음은 이전 설명의 배치입니다. 현재 파일의 마지막 10 줄을 표시합니다. ____ for / f "tokens = 3"%% f in ( 'find / c / v ""% 0') nbLines = %% f ____ set / a nbSkippedLines = / nb "skip = % nbSkippedLines % delims ="에 대한 % nbLines % -10 ____ (% 0)의 %% d는 %% d를 반향합니다
Nicolas

1
이것은 포스터가 원하는 것과 정확히 일치하며 제대로 작동합니다.
Jackie Yeh

코드 감사합니다! 수정 된 매개 변수 번호와 줄 수에 대한 추가 번호로 답변에 추가했습니다. 줄에 출구가 표시됩니다. 추신 : 1.5Gb 파일을 꼬리에 붙이고 15 초 만에 결과를 얻었습니다.
Leopoldo Sanczyk

실제로 4 단계에서 건너 뛸 줄 수에 대한 매개 변수를 사용하는 'more'명령을 사용하는 것이 더 좋습니다. 더 빨리 생각합니다.
Philibert Perusse



5

UNIX 용 Windows 서비스를 사용해보십시오 . 꼬리뿐만 아니라 껍질, awk, sed 등을 제공합니다.

업데이트 -: 불행히도 2019 년 현재이 시스템은 Microsoft 다운로드 센터에서 더 이상 제공되지 않습니다.


1
이것은 Win7 이상에 문제가 있습니다.
더그 윌슨

1
정말? 투표율이 낮은 4 년 된 답변을 뛰고 있습니까? 기여하는 방법.
Dave

9
@Dave : 질문이 오래되었지만 사람들은 여전히 ​​최고의 답변을 찾으려고 노력하고 있습니다. 거의 5 년 전의 답변이 더 이상 관련이 없거나 좋지 않다면 왜이를 내려 놓지 말아야합니까? 이 전체 사이트는 5 년 전이 아니라 오늘날 귀중한 정보를 더 빨리 얻는 것입니다.
Oliver

1
@Hellfire-Wwindows 7에서는 작동하지 않는다는 조건으로 답변을 편집해야합니다.
Preet Sangha




4

DOS type는 * nux와 같이 작동 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

"type"명령을 사용하는 것이 좋지만 파이프에 연결할 수는 없습니다!
eadmaster

이것은 텍스트 파일을 계속 다시로드합니다.

echo의 배치 버전은 이상한 행동을합니다. 인수가 주어지지 않으면 그냥 종료되지만 echo.단어에 후행 점이있는 것처럼 명령을 호출하면 (별도의 인수가 아닌) 단일 행을 인쇄합니다.
scragar



3

MKS 툴킷 설치 ... Windows에서 모든 Unix 명령을 실행할 수 있습니다.

명령은 다음과 같습니다.

tail -f <file-name>  

3

에서 멀리 관리자 를 눌러 F3파일에 다음, 표준 뷰어를 입력합니다End 파일의 끝을 탐색 키를 누릅니다.

파일이 업데이트되면 Far Manager가 자동으로 스크롤합니다.



0

그래픽 로그 뷰어는 로그 파일을 보는 데 매우 좋지만 스크립트 (또는 배치 파일)에 통합 할 수있는 명령 줄 유틸리티의 요구를 충족하지 않습니다. 종종 이러한 단순하고 범용적인 명령은 특정 환경에 대한 특수 솔루션의 일부로 사용될 수 있습니다. 그래픽 방식은 그러한 용도에 쉽게 적합하지 않습니다.



0

배치 파일에서 tail 함수의 필요성을 충족시키는 유틸리티를 찾았습니다. "mtee"라고하며 무료입니다. 작업중 인 배치 파일에 통합했으며 작업을 매우 훌륭하게 수행합니다. 실행 파일을 PATH 문의 디렉토리에 넣어 두십시오.

링크는 다음과 같습니다.

mtee

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.