Ответ 1
перейдите по этой ссылке. Там был взломан ANSI для оболочки CMD.exe
Я пробовал это на своем профессиональном SP1 с выигрышем 7 и работает как шарм
Итак, в Bash вы просто настраиваете PS1
для добавления цветов в приглашение. Я говорю о правильности строки, а не о цвете переднего плана (текста) или фона. И это действительно легко в Bash, и это очень помогает, если вам нужно найти свои команды в море беспорядочного вывода текста.
Можете ли вы достичь того же значения для cmd.exe
или в качестве резервной копии для PowerShell? Цветной запрос?
Я не знаю, можно ли это сделать в старые времена перед Win32, загрузив ANSI.SYS
. Я думаю, это было просто для того, чтобы сделать передний план и фон ярким. Но я могу ошибаться. И все же, эти дни ушли, и в наше современное время (я знаю) мы используем cmd.exe
или PowerShell.
Я знаю, что cmd.exe и PowerShell способны выполнять цветной вывод. Для cmd.exe просто запустите color /?
, чтобы узнать. Но мой вопрос не в том, что на первый план и на фоне, что все известно человечеству - это просто изменение цвета подсказки для cmd.exe, возможно, с помощью переменной среды PROMPT
, как через переменную PS1
для Bash? Возможно ли это?
И нет, Cygwin не является альтернативой для этого. Я пользователь Cygwin с MinTTY и все, и мне это нравится. Но я все еще хочу, чтобы мой приглашение cmd.exe
тоже окрашивалось.
перейдите по этой ссылке. Там был взломан ANSI для оболочки CMD.exe
Я пробовал это на своем профессиональном SP1 с выигрышем 7 и работает как шарм
Вы можете добавить функцию подсказки в свой профиль в Powershell, чтобы в значительной степени сделать все, что захотите, с подсказкой. Так например, что-то вроде этого:
function prompt
{
Write-Host "PS $(get-location)>" -nonewline -foregroundcolor Magenta
return ' '
}
Чтобы открыть или создать свой профиль PowerShell, запустите это:
if(Test-Path $profile){notepad $profile}else{New-Item -path $profile -type file -force}
Это хорошая информация, но важная вещь, которую я не рассматривал, заключается в том, как создавать пользовательские подсказки при каждом запуске командной строки. В старых Windows, таких как XP и раньше, вы должны поместить переменную среды PROMPT в файл AUTOEXEC.BAT
, но в Windows 7 - Windows 10, вы сделали бы ее постоянной следующим образом:
Run
, используя Windows key + R
ENTER
$e[1;44m*$e[41m▀▀$e[0;1m $P$G
(Белая полоска сделана, удерживая нажатой клавишу ALT и набрав 223 на клавиатуре справа. В этом запросе есть два из этих символов.)
Вы можете использовать несколько цветов (очень полезно для идентификации компонентов вашей подсказки, типичных в Unix):
function prompt {
Write-Host ("@") -NoNewLine -ForegroundColor Magenta
Write-Host ("$env:COMPUTERNAME") -NoNewLine -ForegroundColor Green
Write-Host (":") -NoNewLine -ForegroundColor Magenta
Write-Host ($(Get-Location)) -NoNewLine -ForegroundColor Green
Write-Host (">") -NoNewLine -ForegroundColor Red
return " "
}
(COMPUTERNAME
здесь явно записано, но на самом деле его заменяет значение переменной среды).
И вы можете добавить случайные цвета (взятые из здесь; у этого есть аналогичная версия, у обоих есть другие очень интересные хитрости):
function prompt
{
$random = new-object random
$color=[System.ConsoleColor]$random.next(1,16)
Write-Host ("PS " + $(get-location) +">") -nonewline -foregroundcolor $color
return " "
}
Основываясь на ответе @KriZ, escape-последовательности ANSI прекрасно работают в Windows 10 cmd.exe
с 2019 года. Не нужно было явно вызывать ansi.sys
или копировать какие-либо файлы. Он просто работал из коробки в Windows 10.
Например,
set PROMPT=$E[1;37m[[email protected]:$E[1;35m$P ]$$ $E[1;37m
Производит:
(Обратите внимание на пробел после финала $
)
Все, что перед диском, выделено жирным белым цветом, а диск/папка - жирным розовым, а все, что осталось после финального $
, - жирным белым.
Формат для цветов:
$E[bold_or_not;colorm
С т всегда после номера цвета. bold_or_not = 0 или 1. Вот руководство по цветам:
0 Turn Off Attributes 1 High Intensity 2 Normal Intensity 4 Underline (mono only) 5 Blink 7 Reverse Video 8 Invisible 30 Black 31 Red 32 Green 33 Yellow 34 Blue 35 Magenta 36 Cyan 37 White 40 Black 41 Red 42 Green 43 Yellow 44 Blue 45 Magenta 46 Cyan 47 White
Цвета Источник: https://kb.iu.edu/d/aamm