Есть ли способ очистить экран PowerShell перед каждой командой?

Я играю с PowerShell и постоянно набираю cls прежде чем я запускаю команды. Или, что еще хуже, я запускаю команду, осознаю, что из-за выходных данных из-за других неудобств навигация, запуск clsи повторите мою проклятую команду. Есть ли способ очистить вывод предыдущей команды перед выполнением каждой команды? Очевидно, было бы идеально, если бы это можно было переключить с помощью команды или чего-то простого, но все, что будет работать.:) Также я играю с PS 3, ISE и PowerGUI.

3 ответа

Решение

Знаю, что это старше, но подумал, что передам это кому-нибудь еще, кто ищет -

Один из приемов, который я использую, заключается в том, чтобы просто поместить "cls" в качестве первой строки на моем экране редактора PowerShell (в моем случае, используя PowerShell ISE). Затем каждый раз, когда я запускаю свой сценарий, консоль PowerShell в ISE очищается, экономя время, поэтому там отображается только мой самый последний запуск.

Я не советую оставлять "cls" в производственных скриптах - но это полезно для итеративного тестирования в ISE, где вы постоянно проверяете вывод в окне консоли PowerShell на основе ввода скриптов.

В PowerShell для очистки экрана вы можете ввести Clear-Host;, его псевдонимы, cls; и ясно; или его эквивалент [System.Console]::Clear();.

CLS, Clear и Clear-Host не работают, когда ваша PowerShell (или CMD в этом отношении) работает внутри сеанса PSEXEC.

Существует функция prompt, которая выполняется всякий раз, когда PowerShell запрашивает команду. На моей системе (PS v3, ISE) встроенный скрипт

$host.ui.rawui.WindowTitle = ($host.ui.rawui.WindowTitle -split ":")[0] + ": $pwd"
$(if (test-path variable:/PSDebugContext) { 
    '[DBG]: ' 
  } else { 
    '' 
  }) + 
'PS' + 
$(if ($nestedpromptlevel -ge 1) { ">>>" } else { "> "})

Вы можете заменить или изменить этот скрипт. Например, вы можете поместить команду cls вверху скрипта выше.

Другие вопросы по тегам