PowerShell montre le temps écoulé

J'ai un script qui lance un événement et attend que l'utilisateur appuie sur une touche pour arrêter l'exécution du script. J'ai essayé de trouver un moyen de montrer une minuterie (combien de temps le script a été en cours d'exécution) en attendant l'entrée de l'utilisateur à Read-Host. Est-il un moyen pour accomplir cette?


Cela fonctionne

$Time = [System.Diagnostics.Stopwatch]::StartNew()
while ($true) {
    $CurrentTime = $Time.Elapsed
    write-host $([string]::Format("`rTime: {0:d2}:{1:d2}:{2:d2}",
                                  $CurrentTime.hours,
                                  $CurrentTime.minutes,
                                  $CurrentTime.seconds)) -nonewline
    sleep 1
    if ($Host.UI.RawUI.KeyAvailable -and ("q" -eq $Host.UI.RawUI.ReadKey("IncludeKeyUp,NoEcho").Character)) {
        Write-Host "Exiting now"
        break;
    }
}
Jetez un oeil ici pour l'utilisation de WPF de l'INTERFACE utilisateur dans le backgound dans powershell nivot.org/blog/post/2008/05/23/...

OriginalL'auteur Jeff | 2012-06-08