2

最近、Windows Server 2008 R2 のServerManager モジュールからAdd-WindowsFeatureコマンドレットを使用する PowerShell スクリプトを作成すると、スクリプト全体が終了するまでクリアされない水色のオーバーレイがあることに気付きました。たとえば、コマンドを使用して IIS をインストールするスクリプトのスクリーンショットを次に示します。Add-WindowsFeature Web-Server

Add-WindowsFeature Web サーバー オーバーレイ

データの収集中... インストールの開始... オーバーレイはコンソール履歴の上に残り、スクリプト全体が終了するまで消えません。コンソール自体を再描画したり、オーバーレイを無効にしたりする方法はありますか?

4

2 に答える 2

3

これは、サーバー マネージャーのコマンドレットによって内部的に呼び出された Write-Progress の結果です。サイレントにしたい場合は、$ProgressPreference を「SilentlyContinue」に変更するだけです。

これをエミュレートするには、自分で Write-Progress を使用します。

for ($i = 0; $i -lt 100; $i++) { 
    Write-Progress -Activity "Counting: $i" -Status "$i" -PercentComplete $i
    sleep 1 
}

HTH バーテック

于 2012-06-04T20:30:11.210 に答える
0

これを修正する興味深い方法を見つけました。write-progress を使用すると、最後に -completed スイッチを追加するだけで何もしない二次ループを簡単に実装できます。

for ($i = 1; $i -le 100; $i++ )
{write-progress -activity "Search in Progress" -status "$i% Complete:" -percentcomplete $i;}

上記のコードはもちろん、進行状況を表示し、実際に何かを実行している関数ループです。

for ($i = 1; $i -le 100; $i++ ) {
write-progress -activity "Finishing" -status "$i% Complete:" -percentcomplete $i -Completed;}

何もしないこの正確なスニペットを実行すると、 -completed スイッチを使用すると、進行状況ダイアログのオーバーレイが消えます。きちんとした解決策ではありませんが、それでも私のニーズに対する解決策です。

于 2013-01-16T18:28:36.797 に答える