81 votes

Quel est l'analogue Windows de la commande watch de Linux ?

Je cherche un programme/script/fonction de ligne de commande Windows qui fonctionne comme la fonction de Linux watch programme.

watch appelle périodiquement un autre programme/quelque chose et affiche le résultat, ce qui est idéal pour rafraîchir un fichier de sortie ou similaire toutes les secondes :

watch cat my-output.txt

ou, plus puissamment :

watch grep "fail" my-output.txt

Je l'ai cherché dans la bibliothèque de Cygwin, mais il ne semble pas être présent.

8voto

johnrizzo1 Points 81

J'ai écrit ce petit module PowerShell pour faire ce que tu cherchais. Il suffit de le mettre dans

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

et exécuter import-module watch dans 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

8voto

ErikW Points 181

C'est un "one liner" PowerShell :

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

3voto

Linker3000 Points 26898

Vous pouvez également créer un délai en utilisant la commande PING, par exemple :

@echo off
:loop
  cls
  dir c:\temp
  REM 5000mS (5 sec) delay...
  ping 1.1.1.1 -n 1 -w 5000 >NUL
goto loop

2voto

garrettg84 Points 21

J'ai eu le même problème lorsque j'ai eu besoin de vérifier la taille d'un fichier en cours de traitement par un autre processus. J'ai fini par cloner la fonctionnalité de watch sous Windows. L'exe compilé ainsi que la source sont disponibles sur le site.

montre pour Windows

2voto

LanDenLabs Points 131

J'ai créé une commande de surveillance pour Windows appelée llwatch.

Le code est à la fois sur mon site web landenlabs.com

et aussi sur GitHub

Vous devrez peut-être utiliser x64 pour regarder les programmes x64 et x32 pour les autres. Je ne sais pas à quel point Windows est pointilleux.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X