Есть ли способ очистить экран 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 вверху скрипта выше.