2012-06-04 1 views
2

Недавно я заметил, что при создании сценариев powershell, которые используют командлет Add-WindowsFeature из ServerManager Module на Windows Server 2008 R2, есть аква-синий наклад, который не очищается, пока весь скрипт не будет очищен законченный. Например, вот скриншот из сценария, который использует команду Add-WindowsFeature Web-Server для установки IIS:Очистить наложение PowerShell с помощью командлета Add-WindowsFeature

Add-WindowsFeature Web-Server overlay

Данные собирающих ... Запуск установки ... накладка остается на вершине истории консоли и не исчезают до завершения всего скрипта. Есть ли способ заставить консоль перекрасить себя или отключить оверлей?

ответ

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 
} 

НТН Бартек

+0

Спасибо! Я нашел более подробную информацию здесь http://stackoverflow.com/questions/6651120/how-do-you-hide-a-powershell-progress-message и здесь https://groups.google.com/group/microsoft.public. windows.powershell/browse_thread/thread/bc5c1d8368fd8bb2? pli = 1 –

+0

Я все еще хочу, чтобы был способ показать прогресс, а затем скрыть его. Я попытался сыграть с командой «Write-Progress-Completed», но я не мог заставить ничего работать, кроме как полностью скрыть его –

0

Я нашел интересный способ, чтобы исправить это. При использовании write-progress вы можете просто реализовать вторичный цикл, который абсолютно ничего не делает, кроме добавления в конце завершенного коммутатора.

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 переключатель делает прогресс диалоговое наложение исчезнет. Не совсем точное решение, но решение для моих потребностей, тем не менее.

 Смежные вопросы

  • Нет связанных вопросов^_^