Есть ли в PowerShell что-то вроде "echo off" в режиме командной строки? - PullRequest
1 голос
/ 29 апреля 2020

В командной строке CMD команда echo off отключает отображение командной строки в «окне командной строки».

, т. Е. Больше не показывает путь к папке в приглашении, которое дает вам чистое темное окно.
Я поместил gif ниже, чтобы сделать это очень ясным:

После команды echo off приглашение не показывает путь "C: \ Users \ TEMP> "больше, пока я снова не наберу echo on.

Есть ли в PowerShell что-то подобное? Извините, если это глупо. Я пытался найти его, но не нашел простого ответа относительно окна командной строки (не выполнения скрипта).

enter image description here

Ответы [ 2 ]

2 голосов
/ 29 апреля 2020

Используйте символ контроля возврата.

function prompt { echo " `b" }

no prompt message

2 голосов
/ 29 апреля 2020

Цель 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...