Цель echo off
состоит не в том, чтобы скрыть подсказку в cmd, а в том, чтобы отключить отображение команд (особенно используется в пакетных сценариях). Поскольку у PS нет эхо-команд, у него нет возможности его отключить. Но так как вы просто хотите изменить приглашение:
Вы можете изменить приглашение, но не на пустую строку. Если вы вернете пустую строку, PS будет использовать приглашение по умолчанию:
function prompt {}
Результат:
PS>echo hello
hello
PS>
Вы можете вернуть пробел:
function prompt {' '}
Результат:
echo hello
hello
Но тогда перед каждой строкой ставится пробел. Вы также можете использовать интересный хак из ответа 7 cc и вставить символ с добавленным символом возврата. Но имейте в виду, что по крайней мере PowerShell 5.1 будет в настоящее время cra sh при использовании приглашения, которое короче двух символов. Например, он наберет sh, как только вы введете {
или for
. И он будет глючить, если подсказка не заканчивается пробелом (символ подсказки исчезает, например, при наборе {
или for
). Так что, вероятно, лучше всего go с чем-то вроде >
с последующим пробелом в качестве самого короткого приглашения:
function prompt {'> '}
Текущее встроенное приглашение определяется следующим образом:
function prompt {
$(if (Test-Path variable:/PSDebugContext) { '[DBG]: ' }
else { '' }) + 'PS ' + $(Get-Location) +
$(if ($NestedPromptLevel -ge 1) { '>>' }) + '> '
}
Подробнее о подсказках в PS