programing

cmd.exe 및 PowerShell에서 PROPMENT(PROPMENT만 해당)의 색상은?

newstyles 2023. 10. 1. 19:20

cmd.exe 및 PowerShell에서 PROPMENT(PROPMENT만 해당)의 색상은?

그래서 Bash에서는 그냥 구성을 하고,PS1메시지에 색상을 추가합니다.전경(텍스트)이나 배경의 색상이 아닌 적절한 프롬프트를 말하는 것입니다.Bash에서는 매우 쉽고 복잡한 텍스트 출력 속에서 명령을 찾아야 하는 경우에도 많은 도움이 됩니다.

동일한 목표를 달성할 수 있습니까?cmd.exe, 아니면 파워쉘을 위한 폴백으로?컬러풀한 프롬프트?

로딩으로 Win32 이전의 옛날에 가능한지는 모르겠습니다.ANSI.SYS. 저는 그것이 단지 전경과 배경을 다채롭게 만들기 위한 것이었다고 생각합니다.하지만 제가 틀릴 수도 있습니다.어쨌든, 그 시대는 지났고, 우리 현대에는 (알아요)cmd.exe, 또는 PowerShell.

cmd.exe와 PowerShell 모두 컬러 출력이 가능한 것으로 알고 있습니다.cmd.exe의 경우 실행만 하면 됩니다.color /?알아내기 위해.하지만 제 질문은 전경과 배경에 관한 것이 아니라, 그것은 인류에게 모두 알려진 것입니다. 그것은 단지 cmd.exe의 즉각적인 색상을 바꾸는 것입니다. 아마도 그것을 통해서.PROMPT환경 변수(via).PS1배시의 변수?가능합니까?

그리고 아니, Cygwin은 이것에 대한 대안이 아닙니다.저는 MinTTY와 모든 것을 가진 Cygwin 사용자이고, 저는 그것을 좋아합니다.하지만 나는 여전히 내 것을 원합니다.cmd.exe색도 금방 칠해져요.

Powershell에서 Prompt 기능을 프로필에 추가하여 Prompt 기능으로 원하는 작업을 거의 수행할 수 있습니다.예를 들어, 이런 것들이 있습니다.

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}

이 링크를 따라갑니다.CMD.exe 쉘에 대한 ANSI 해킹이 개발되었습니다.

안시핵에 연결

win7 프로 SP1에 도전해 보았는데 매력적으로 작동합니다.

enter image description here

@KriZ의 답변을 기반으로 ANSI 탈출 시퀀스는 Windows 10에서 완벽하게 작동합니다.cmd.exe2019년 현재명시적으로 호출할 필요가 없음ansi.sys파일을 복사할 수도 있습니다.윈도우 10에서는 단번에 해결되었습니다.

예를들면,

set PROMPT=$E[1;37m[user@machine:$E[1;35m$P ]$$ $E[1;37m

제작물:

example colored prompt

(결승전 후 공간 확인)$)

드라이브 이전의 모든 것은 굵은 흰색으로, 드라이브/폴더는 굵은 분홍색으로 표시되며, 결승전 이후의 모든 것은 흰색으로 표시됩니다.$대담한 흰색입니다.

색상의 형식은 다음과 같습니다.

$E[bold_or_not;colorm

색상 번호를 항상 따르는 m. 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

이는 모두 좋은 정보이지만, 명령 프롬프트를 실행할 때마다 사용자 지정 프롬프트가 표시되도록 하는 방법이 중요합니다. 이전 의 Windows에서는 PROCOM에 넣었습니다AUTOEXEC.BAT파일이지만 윈도우 7에서 윈도우 10까지는 다음과 같이 영구적으로 만들 수 있습니다.

  • open Run 윈도우즈우)를 사용하여 표시key + R
  • properties advanced advanced)를 입력하고 "system properties advanced"() 를를 .ENTER
  • 시스템 속성 대화 상자가 열립니다(내 컴퓨터를 마우스 오른쪽 단추로 클릭하고 속성을 선택하여 얻을 수도 있습니다).
  • 맨 위에 있는 "Advanced(고급)" 탭 선택
  • 하단에 있는 "환경 변수" 선택
  • 아래쪽 영역의 "System variables" 영역에서 현재 "Prompt"라는 변수가 있는지 확인합니다(자본금은 상관 없음).
  • 그렇다면 프롬프트 변수와 변경 사항을 영구적으로 편집합니다.
  • 그렇지 않은 경우 하단에 있는 "새로 만들기"를 클릭하고 변수 이름에 PROCMENT를 입력하고 변수 값을 원하는 대로 입력합니다.기본 프롬프트의 변수 값은 $P$G입니다.
  • 확인을 누릅니다.
  • 명령 프롬프트를 실행하여 테스트
  • 다 했어요.
  • 참고: 텍사스 깃발처럼 보이는 사용자 지정 명령 프롬프트를 사용합니다. 값은다입니다.$e[1;44m*$e[41m▀▀$e[0;1m $P$G

(흰색 막대는 ALT를 누른 상태에서 오른쪽 키패드에 223을 입력하여 만듭니다.이 프롬프트에는 두 개의 문자가 있습니다.)

여러 색상을 사용할 수 있습니다(유닉스에서 일반적으로 프롬프트의 구성 요소를 식별하는 데 매우 유용함).

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 " "
}

enter image description here

(COMPUTERNAME는 여기에 명시적으로 쓰여져 있지만 실제로는 환경 변수의 값으로 대체됩니다.)

또한 임의 색상을 추가할 수 있습니다(여기서 가져온 색상, 유사한 버전, 다른 매우 흥미로운 수정 사항).

function prompt
{
    $random = new-object random
    $color=[System.ConsoleColor]$random.next(1,16)
    Write-Host ("PS " + $(get-location) +">") -nonewline -foregroundcolor $color
    return " "
}

기존의 모든 답변 덕분에, 이것은 나의 명령 프롬프트입니다 (좋으시면 사용하셔도 됩니다)

$E[7;33m$P$_$E[0;37m[$E[0;32m%username%@%computername%$E[0;36m$S$D$S$T$H$H$H$E[0;37m]$$$E[0;37m$S

를 만 하면 .PROMPT와 같은

출력:

enter image description here

언급URL : https://stackoverflow.com/questions/6297072/color-for-the-prompt-just-the-prompt-proper-in-cmd-exe-and-powershell