Wie wird die implizite PowerShell-Format-Tabelle gezwungen, die Header für die wiederholte Ausgabe zu wiederholen?

Ich versuche zu wiederholen * nixwatch Funktionalität wie von @ bereitgestel johnrizzo1 Hie.

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

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

Export-ModuleMember -function Watch

watch -n 1 '$PSVersionTable.PSVersion'

Das Problem ist, dass nur der erste Lauf Überschriften anzeigt. Danach sieht es hässlich aus, wenn die Header von der Ausgabe entfernt werden:

Command:  $PSVersionTable.PSVersion                                     
5      0      10586  117

Übrigens alle anderen PS-Lösungen zuwatch im obigen Link leiden unter dem gleichen Problem.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage