johnrizzo1hereのように* nix watch
の機能を繰り返そうとしています。暗黙のPowerShell Format-Tableに繰り返し出力用のヘッダーを繰り返す方法を教えてください。
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'
問題は、1回目の実行でのみヘッダーが表示されることです。それは後のヘッダは出力から取り除かれているよう醜い:
Command: $PSVersionTable.PSVersion
5 0 10586 117
はリンクwatch
に他のすべてのPSのソリューションは、同じ問題に苦しむところで。
を変更するとこれは私が明示的にフォーマットを追加することができますアドホックコマンドのために働きます-表。これは汎用コマンドでは機能しません。 –
したがって、テーブルヘッダーは一度書き込まれてから、PowerShellが実際に作成されていない何かを行うために画面をクリアします。 –
これで楽しんでください –