답변:
ConEmu 는 Xterm 256 색상 확장을 사용하는 ANSI X3.64를 지원합니다. 이 콘솔 에뮬레이터의 저자입니다.
AnE 시퀀스는 ConEmu 탭에서 실행되는 모든 프로세스에 대해 처리됩니다.
AFAIK, ConEmu는 Ansicon보다 더 많은 코드를 지원합니다.
이 페이지의 어떤 답변도 빌드 16257 이상에서 Windows 10 콘솔 호스트에 추가 된 ANSI 터미널 제어에 대한 새로운 지원의 중요한 측면을 언급하지 않습니다. 즉, 기본적으로 n̲o̲t̲ e̲n̲a̲b̲l̲e̲d̲ 입니다. 사용중인 특정 소프트웨어 가 플래그 와 함께 SetConsoleMode API를 호출하여 ANSI 처리 를 활성화 하지 않으면 해당 응용 프로그램에 대해 색상이 표시되거나 ANSI 처리가되지 않습니다.ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x0400)
ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
https://docs.microsoft.com/en-us/windows/console/setconsolemodeWriteFile 또는 WriteConsole로 쓸 때 커서 이동, 색상 / 글꼴 모드 및 기존 콘솔 API를 통해 수행 할 수있는 기타 작업을 제어하는 VT100 및 유사한 제어 문자 시퀀스에 대해 문자가 구문 분석됩니다. 자세한 내용은 콘솔 가상 터미널 시퀀스를 참조하십시오.
이 페이지에 표시된 예제가 작동하는 이유는 echo
아마도 명령 (또는 아마도 배치 처리 부분 CMD.EXE
또는 conhost
)이 방금 언급 한 API를 호출하여 ANSI 처리를 가능하게하기 때문입니다. 그러나 이것을 작성 stdin
하거나 작성 stdout
하지 않을 수있는 다른 도구 나 실행 파일이 많을 경우 해당 프로세스의 색상이 표시되지 않습니다.
다행히, 글로벌 기본값에서 변경할 수 있습니다 옵트 인 에 옵트 아웃 . at 레지스트리 키는 HKEY_CURRENT_USER\Console\VirtualTerminalLevel
ANSI 이스케이프 시퀀스 처리를위한 전역 기본 동작을 설정합니다. DWORD
키를 생성하고 (필요한 경우) 기본적으로 ANSI 처리 1
를 전역 적으로 활성화 (또는 0
비활성화)하도록 설정하십시오.
[HKEY_CURRENT_USER \ 콘솔] "VirtualTerminalLevel"= dword : 00000001
이 레지스트리 설정은 기본값을 제어 하므로을 호출하여 콘솔 모드를 명시 적으로 조작하지 않는 콘솔 앱에만 영향을 미칩니다 SetConsoleMode(...)
. 레지스트리 값이 콘솔 모드를 모르는 앱에 대해 ANSI를 활성화하는 데 도움이 될 수 는 있지만 어떤 이유로 든 ANSI를 명시 적으로 비활성화 할 수 있는 콘솔 모드에 정통한 앱 에는 영향을 미치지 않습니다 .
Windows 10 TH2 (v1511)부터 conhost.exe
(및 확장하여 cmd.exe
)는 ANSI 이스케이프 시퀀스 (특히 색상)를 지원합니다.
콘솔 가상 터미널 시퀀스에 대한 MSDN 페이지 순서가 지원되는 그들을 사용하는 방법을 설명합니다 :
GetConsoleMode 및 SetConsoleMode 플래그를 사용하여이 동작을 구성 할 수 있습니다 . [...]
다음 시퀀스의 동작은 VT100 및 파생 터미널 에뮬레이터 기술, 특히 xterm 터미널 에뮬레이터를 기반으로합니다. 터미널 시퀀스에 대한 자세한 정보는 http://vt100.net 및 http://invisible-island.net/xterm/ctlseqs/ctlseqs.html 에서 찾을 수 있습니다 .
ANSI 색상을 해석하는 Windows 용 콘솔 에뮬레이터가 있습니까?
10 이전 Windows-콘솔에서 ANSI 색상을 기본적으로 지원하지 않음
Windows 버전 10 이하의 경우 Windows 명령 콘솔은 기본적으로 출력 색상을 지원하지 않습니다. 당신은 설치할 수 중 Cmder , ConEmu , ANSICON 또는 Mintty (GitBash와 Cygwin에서에서 기본적으로 사용되는) 당신의 Windows 명령 콘솔에 지원을 착색 추가 할 수 있습니다.
Windows 10-명령 줄 색상
Windows 10부터 Windows 콘솔은 기본적으로 ANSI 이스케이프 시퀀스 및 일부 색상을 지원합니다.
데모
배치 명령
는 win10colors.cmd
에 의해 작성되었습니다 미셸 Locati :
@echo off
cls
echo [101;93m STYLES [0m
echo ^<ESC^>[0m [0mReset[0m
echo ^<ESC^>[1m [1mBold[0m
echo ^<ESC^>[4m [4mUnderline[0m
echo ^<ESC^>[7m [7mInverse[0m
echo.
echo [101;93m NORMAL FOREGROUND COLORS [0m
echo ^<ESC^>[30m [30mBlack[0m (black)
echo ^<ESC^>[31m [31mRed[0m
echo ^<ESC^>[32m [32mGreen[0m
echo ^<ESC^>[33m [33mYellow[0m
echo ^<ESC^>[34m [34mBlue[0m
echo ^<ESC^>[35m [35mMagenta[0m
echo ^<ESC^>[36m [36mCyan[0m
echo ^<ESC^>[37m [37mWhite[0m
echo.
echo [101;93m NORMAL BACKGROUND COLORS [0m
echo ^<ESC^>[40m [40mBlack[0m
echo ^<ESC^>[41m [41mRed[0m
echo ^<ESC^>[42m [42mGreen[0m
echo ^<ESC^>[43m [43mYellow[0m
echo ^<ESC^>[44m [44mBlue[0m
echo ^<ESC^>[45m [45mMagenta[0m
echo ^<ESC^>[46m [46mCyan[0m
echo ^<ESC^>[47m [47mWhite[0m (white)
echo.
echo [101;93m STRONG FOREGROUND COLORS [0m
echo ^<ESC^>[90m [90mWhite[0m
echo ^<ESC^>[91m [91mRed[0m
echo ^<ESC^>[92m [92mGreen[0m
echo ^<ESC^>[93m [93mYellow[0m
echo ^<ESC^>[94m [94mBlue[0m
echo ^<ESC^>[95m [95mMagenta[0m
echo ^<ESC^>[96m [96mCyan[0m
echo ^<ESC^>[97m [97mWhite[0m
echo.
echo [101;93m STRONG BACKGROUND COLORS [0m
echo ^<ESC^>[100m [100mBlack[0m
echo ^<ESC^>[101m [101mRed[0m
echo ^<ESC^>[102m [102mGreen[0m
echo ^<ESC^>[103m [103mYellow[0m
echo ^<ESC^>[104m [104mBlue[0m
echo ^<ESC^>[105m [105mMagenta[0m
echo ^<ESC^>[106m [106mCyan[0m
echo ^<ESC^>[107m [107mWhite[0m
echo.
echo [101;93m COMBINATIONS [0m
echo ^<ESC^>[31m [31mred foreground color[0m
echo ^<ESC^>[7m [7minverse foreground ^<-^> background[0m
echo ^<ESC^>[7;31m [7;31minverse red foreground color[0m
echo ^<ESC^>[7m and nested ^<ESC^>[31m [7mbefore [31mnested[0m
echo ^<ESC^>[31m and nested ^<ESC^>[7m [31mbefore [7mnested[0m