Linux watch 명령의 Windows 아날로그 란 무엇입니까? 무엇이든 호출하고 결과를 보여줍니다.

Linux watch프로그램 처럼 작동하는 Windows 프로그램 / 스크립트 / 명령 줄 기능을 찾고 있습니다.

watch 주기적으로 다른 프로그램 / 무엇이든 호출하고 결과를 보여줍니다. 매초마다 출력 파일을 새로 고치는 데 좋습니다.

watch cat my-output.txt

또는 더 강력하게 :

watch grep "fail" my-output.txt

cygwin의 도서관에서 찾았지만 존재하지 않는 것 같습니다.



답변

watchCygwin에서 여기에procps 나열된 패키지로 제공됩니다 (이 정보는 웹 사이트의 패키지 검색을 통해 여기를 참조 하십시오 ). 이 패키지는 기본 cygwin 설정에 의해 설치되지 않았다고 생각하지만 watch 명령을 사용하기 위해 일반적으로 새 설치에서 선택하는 패키지입니다.

패키지의 도구 위치는 일반적으로 Linux 배포판의 패키지 이름 ( watchDebian 및 Ubuntu의 procps이기도 함)과 일치 하므로 Cygwin 패키지 검색 기능이 실패하면 Linux 배포판에 대한 정보가 실마리를 제공 할 수 있습니다.


답변

직접 작성하십시오. 파일 watch.bat에 다음이 포함되어 있다고 가정 해 봅시다 .

@ECHO OFF
:loop
  cls
  %*
  timeout /t 5 > NUL
goto loop

예를 들어 다음과 같이 호출하십시오.

watch echo test

메아리 test5 초마다.


답변

Powershell에는 “while”명령이 있습니다. Linux 에서처럼 사용할 수 있습니다.

while (1) {your_command; 수면 5}

리눅스 버전 :

사실이지만; your_command를하십시오; 수면 5; 끝난

기타 :

while ($ true) {netstat -an | findstr 23560; 수면 5; 데이트}


답변

이것을 달성하기위한 일반적인 Windows 명령 oneliner :

for /l %g in () do @( echo test & timeout /t 2 )

“echo test”를 반복적으로 실행하려는 명령으로 바꾸십시오.


답변

나는 당신이 찾고있는 것을하기 위해이 작은 PowerShell 모듈을 썼습니다. 그냥 넣어

C:\Users\[username]\Documents\WindowsPowerShell\Modules\Watch

import-module watchPowerShell에서 실행하십시오 .


# ---- BEGIN SCRIPT
# Author:       John Rizzo
# Created:      06/12/2014
# Last Updated: 06/12/2014
# Website:      http://www.johnrizzo.net

function Watch {
    [CmdletBinding(SupportsShouldProcess=$True,ConfirmImpact='High')]
    param (
        [Parameter(Mandatory=$False,
                   ValueFromPipeline=$True,
                   ValueFromPipelineByPropertyName=$True)]
        [int]$interval = 10,

        [Parameter(Mandatory=$True,
                   ValueFromPipeline=$True,
                   ValueFromPipelineByPropertyName=$True)]
        [string]$command
    )
    process {
        $cmd = [scriptblock]::Create($command);
        While($True) {
            cls;
            Write-Host "Command: " $command;
            $cmd.Invoke();
            sleep $interval;
        }
    }
}

Export-ModuleMember -function Watch

# --- END SCRIPT

답변

이것이 내가 PowerShell에서하는 방법입니다.

while(1){ netstat -an|grep 1920;start-sleep -seconds 2;clear }

조건 while(1)while true무한 반복됩니다.


답변

PowerShell one liner입니다.

while ($true) { <your command here> | Out-Host; Sleep 5; Clear }