Linux watch
프로그램 처럼 작동하는 Windows 프로그램 / 스크립트 / 명령 줄 기능을 찾고 있습니다.
watch
주기적으로 다른 프로그램 / 무엇이든 호출하고 결과를 보여줍니다. 매초마다 출력 파일을 새로 고치는 데 좋습니다.
watch cat my-output.txt
또는 더 강력하게 :
watch grep "fail" my-output.txt
cygwin의 도서관에서 찾았지만 존재하지 않는 것 같습니다.
답변
watch
Cygwin에서 여기에procps
나열된 패키지로 제공됩니다 (이 정보는 웹 사이트의 패키지 검색을 통해 여기를 참조 하십시오 ). 이 패키지는 기본 cygwin 설정에 의해 설치되지 않았다고 생각하지만 watch 명령을 사용하기 위해 일반적으로 새 설치에서 선택하는 패키지입니다.
패키지의 도구 위치는 일반적으로 Linux 배포판의 패키지 이름 ( watch
Debian 및 Ubuntu의 procps이기도 함)과 일치 하므로 Cygwin 패키지 검색 기능이 실패하면 Linux 배포판에 대한 정보가 실마리를 제공 할 수 있습니다.
답변
직접 작성하십시오. 파일 watch.bat
에 다음이 포함되어 있다고 가정 해 봅시다 .
@ECHO OFF
:loop
cls
%*
timeout /t 5 > NUL
goto loop
예를 들어 다음과 같이 호출하십시오.
watch echo test
메아리 test
5 초마다.
답변
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 watch
PowerShell에서 실행하십시오 .
# ---- 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 }