Yanıtlar:
ConEmu , Xterm 256 renk uzantısına sahip ANSI X3.64'ü destekler. Bu konsol emülatörünün yazarıyım.
Ansi dizileri ConEmu sekmelerinde çalışan tüm işlemler için kullanılır.
AFAIK, ConEmu Ansicon'dan daha fazla kod destekliyor.
Bu sayfadaki cevapların hiçbiri, 16257 (ve sonraki sürümlerde) Windows 10 konsol ana bilgisayarına eklenen ANSI Terminal Denetimi için yeni desteğin önemli bir yönünü belirtmiyor . Yani, varsayılan olarak n̲o̲t̲ e̲n̲a̲b̲l̲e̲d̲'dir . Kullanmakta olduğunuz belirli bir yazılım , SetConsoleMode API'sini bayrakla çağırarak ANSI işlemeyi mümkün kılmadığı sürece, bu uygulama için renkler görmez veya ANSI işlemesi elde edemezsiniz.ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x0400)
ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
https://docs.microsoft.com/en-us/windows/console/setconsolemodeWriteFile veya WriteConsole ile yazarken , karakterler VT100 ve imleç hareketini, renk / yazı tipi modunu ve mevcut Konsol API'leri aracılığıyla da gerçekleştirilebilecek diğer işlemleri kontrol eden benzer kontrol karakter dizileri için ayrıştırılır. Daha fazla bilgi için, bkz. Konsol Sanal Terminal Dizileri.
Bu sayfada gösterilen örneklerin çalışma nedeninin, görünüşe göre echo
komutun (veya belki de toplu işleme bölümünün CMD.EXE
veya conhost
), yukarıda belirtilen API'yi çağırarak ANSI işlemeyi etkinleştirmesi olduğunu tahmin ediyorum . Ama yazma yapmak için birçok araç ya yürütülebilir o stdin
ya stdout
, bunu olmayabilir, bu durumda bu işlemler için rengi görmez.
Neyse ki, genel varsayılan değiştirilebilir opt-in için opt-out . Adresindeki kayıt defteri anahtarı, HKEY_CURRENT_USER\Console\VirtualTerminalLevel
ANSI çıkış dizilerinin işlenmesi için genel varsayılan davranışı ayarlar. Bir DWORD
anahtar (gerekirse) oluşturun ve değerini varsayılan olarak ANSI işlemeyi 1
genel olarak etkinleştirmek (veya 0
devre dışı bırakmak için) olarak ayarlayın.
[Hkey_current_user \ Konsol] "VirtualTerminalLevel" = dword: 00000001
Bu kayıt defteri ayarının bir varsayılanı kontrol ettiğini, yani yalnızca arama yaparak konsol modunu açıkça değiştirmeyen konsol uygulamalarını etkilediğini unutmayın SetConsoleMode(...)
. Sonuç olarak, kayıt defteri değeri konsol kipine uymayan uygulamalar için ANSI'nin etkinleştirilmesine yardımcı olsa da (bazı nedenlerden dolayı) açıkça ANSI'yi devre dışı bırakabilecek hiçbir konsol kipine duyarlı uygulama üzerinde etkisi olmayacaktır .
Windows 10 TH2'den (v1511) başlamak üzere conhost.exe
(ve, uzantı olarak cmd.exe
) , ANSI Escape Dizilerini, özellikle de renkleri destekler:
Konsol Sanal terminal dizilerinin hakkında MSDN sayfa dizileri desteklenen ne ve etkinleştirmeye açıklar:
Bu davranışı yapılandırmak için GetConsoleMode ve SetConsoleMode bayraklarını kullanabilirsiniz. [...]
Aşağıdaki dizilerin davranışı, VT100 ve türetilmiş terminal emülatörü teknolojilerine, özellikle de xterm terminal emülatörüne dayanmaktadır. Terminal dizileri hakkında daha fazla bilgiyi http://vt100.net adresinde ve http://invisible-island.net/xterm/ctlseqs/ctlseqs.html adresinde bulabilirsiniz .
Windows için ANSI renklendirmesini yorumlayan bir konsol emülatörü var mı?
10'dan önceki pencereler - konsolda ANSI renkleri için yerel destek yok
10'un altındaki Windows sürümlerinde, Windows komut konsolu varsayılan olarak çıktı renklendirmeyi desteklemez. Sen yükleyebilir ya Cmder , ConEmu , ANSICON veya mintty (GitBash ve Cygwin varsayılan olarak kullanılır) Windows komut konsoluna destek boyama ekleyin.
Windows 10 - Komut Satırı Renkleri
Windows 10'dan başlayarak, Windows konsolu varsayılan olarak ANSI Escape Sequences ve bazı renkleri destekler.
gösteri
Toplu Komut
win10colors.cmd
Tarafından yazılmıştır Michele 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