Я знаю, что color bf
команда устанавливает цвета всего окна командной строки, но я хотел напечатать одну строку другим цветом.
217
Я знаю, что color bf
команда устанавливает цвета всего окна командной строки, но я хотел напечатать одну строку другим цветом.
Ответы:
Используйте ANSI Escape-последовательности.
Windows до 10 - нет встроенной поддержки цветов ANSI на консоли
Для версии ниже 10 консоль Windows не поддерживает раскраску по умолчанию. Вы можете установить Cmder , ConEmu , ANSICON или Mintty (используется по умолчанию в GitBash и Cygwin), чтобы добавить поддержку окраски в командную консоль Windows.
Windows 10 - цвета командной строки
Начиная с Windows 10, консоль Windows поддерживает ANSI Escape-последовательности и некоторые цвета по умолчанию. Эта функция поставляется с обновлением Threshold 2 в ноябре 2015 года.
Документация MSDN
Обновление (05-2019): ColorTool позволяет изменять цветовую схему консоли. Это часть проекта Microsoft Terminal .
демонстрация
Пакетная команда
Это
win10colors.cmd
было написано Микеле Локати :источник
.cmd
или.bat
- оба должны работать. Но, я думаю, я знаю, почему это не работает: кажется, что символ escape удаляется при публикации в StackOverflow. Пожалуйста, не копируйте содержание из моего ответа, используйте его здесь: gist.githubusercontent.com/mlocati/…ESC
Раньше мне никогда не приходилось генерировать в notepad ++ ... Это можно сделать с помощью ALT-кодов, используя цифровую клавиатуру и левую клавишу ALT:L-ALT
+0
+2
+7
ESC
персонажа вfor /F %%a in ('echo prompt $E ^| cmd') do set "ESC=%%a"
Это самоскомпилированный гибрид bat / .net (должен быть сохранен как
.BAT
), который можно использовать в любой системе с установленной средой .net (редко можно увидеть окна без платформы .NET даже для самой старой XP / 2003 установки). Он использует компилятор jscript.net для создания исполняемого файла, способного печатать строки с другим цветом фона / переднего плана только для текущей строки.Вот справочное сообщение:
Пример :
coloroutput.bat -s "aa\nbb\n\u0025cc" -b 10 -f 3 -n -e
Вы также можете найти этот скрипт здесь .
Вы также можете проверить функцию цвета Карлоса -> http://www.dostips.com/forum/viewtopic.php?f=3&t=4453
источник
Это не очень хороший ответ, но если вы знаете, что на целевой рабочей станции есть Powershell, вы можете сделать что-то вроде этого (при условии сценария BAT / CMD):
Изменить: (теперь проще!)
Это старый ответ, но я решил немного уточнить и упростить
PowerShell теперь включен во все версии Windows начиная с 7. Поэтому синтаксис этого ответа может быть сокращен до более простой формы:
-fore
вместо-foregroundcolor
-back
вместо-backgroundcolor
echo
(вместо создания отдельного пакетного файла, как описано выше).
Пример:
Больше информации:
Полный список цветов и дополнительную информацию можно найти в
- Документация PowerShell для
Write-Host
источник
Windows 10 - TH2 и выше:
(версия 1511, сборка 10586, выпуск 2015-11-10)
В командной строке:
Используя фактические ключи: эхо Ctrl+ [
[32m HI
Ctrl+[[0m
EnterВы должны увидеть зеленый "HI" под ним.
Кодовые номера можно найти здесь:
Блокнот:
Чтобы сохранить это в блокноте, вы можете ввести в него ESC, используя: Alt+
027
с цифровой клавиатурой, затем[32m
деталь. Еще один трюк, когда я был на ноутбуке, перенаправьте строку выше в файл, чтобы начать, а затем вырезайте и вставляйте:источник
\033
но нет ... как я могу сделать это в Java?Вы можете просто создавать файлы с именем слова для печати, использовать findstr, который может печатать в цвете, а затем стирать файл. Попробуйте этот пример:
Запустите,
color /?
чтобы получить список цветов.источник
Вы можете использовать ANSICON для включения кодов терминала ANSI в более старых версиях Windows. Есть 32- и 64-разрядные версии, которые я использовал в Windows XP и Windows 7.
источник
Меня тоже раздражало отсутствие правильной окраски в cmd, поэтому я решил создать cmdcolor . Это просто стандартный вывод прокси, который выглядит для ограниченного набора управляющих последовательностей ANSI / VT100 (другими словами, как и в Баш), то есть
echo \033[31m RED \033[0m DEFAULT | cmdcolor.exe
.Использование и загрузка .
источник
cmdcolor.exe; PE32 executable for MS Windows (console) Intel 80386 32-bit
upx
. Не могли бы вы связаться со мной по электронной почте, пожалуйста?Я посмотрел на это, потому что хотел ввести несколько простых цветов текста в пакетный файл Win7. Это то, что я придумал. Спасибо за вашу помощь.
источник
Есть уже принятый ответ с более чем 250 голосами против. Причина, по которой я все еще помогаю, заключается в том, что
escape
символ, необходимый для отображения, не принимается многими редакторами (я использую, например, MS Code), а для всех других решений требуются сторонние (не по умолчанию Windows) части программного обеспечения.Обходной путь с использованием только простых командных команд используется
PROMPT
вместоECHO
. КомандаPROMPT
принимаетescape
символ любым удобным для редактора способом как$E
последовательность символов. (Просто заменитеEsc
в кодах ASCII Спасения ) с$E
.Вот демонстрационный код:
ПРИМЕЧАНИЕ. Единственным недостатком является то, что этот метод вступает в противоречие с пользовательскими настройками цвета cmd (
color
команда или настройки), если они не известны явно.- Надеюсь, это поможет, так как это единственное решение, приемлемое для меня по причинам, упомянутым в начале. -
РЕДАКТИРОВАТЬ:
Основываясь на комментариях, я прилагаю еще один фрагмент, вдохновленный @Jeb. Это:
ECHO
команду (ы)PROMPT
значениеECHO
вывода неизбежно влияет наPROMPT
цвет, поэтому в любом случае цвет должен быть сброшенисточник
for /F "delims=#" %%E in ('"prompt #$E# & for %%E in (1) do rem"') do set "\e=%%E"
echo
используемого в batcolors / echo.bat "?set ASCII27=←
сfor /F "delims=#" %%E in ('"prompt #$E# & for %%E in (1) do rem"') do set "ASCII27=%%E"
. При этом используется управляющий символ, созданный командой приглашения, без постоянного изменения приглашения (посколькуprompt
команда выполняется в дочернем процессе). Btw. У васechos.bat
есть некоторый потенциал оптимизации ...Я добавляю ответ для решения проблемы, отмеченной в некоторых комментариях выше: встроенные цветовые коды ANSI могут вести себя некорректно, когда находятся внутри цикла FOR (фактически, внутри любого блока кода, заключенного в скобки). Приведенный ниже код .bat демонстрирует (1) использование встроенных цветовых кодов, (2) сбой цвета, который может возникнуть, когда встроенные цветовые коды используются в цикле FOR или внутри блока кода, заключенного в скобки, и (3) решение эта проблема. Когда исполняется код .bat, тесты 2 и 3 демонстрируют сбой цветового кода, а тест 4 - отсутствие сбоя, поскольку он реализует решение.
[РЕДАКТИРОВАТЬ 2020-04-07: Я нашел другое решение, которое предположительно более эффективно, чем вызов подпрограммы. Заключите фразу FINDSTR в скобки, как показано в следующей строке:
EndEdit]
Примечание. По моему (ограниченному) опыту, проблема с цветовым кодом проявляется только после того, как ввод передается в FINDSTR внутри блока кода. Вот как следующий .bat воспроизводит проблему. Возможно, проблема цветового кода является более общей, чем после передачи в FINDSTR. Если кто-то может объяснить природу проблемы, и если есть лучший способ ее решить, я был бы признателен.
источник
вы можете использовать cecho .. вы также можете использовать его для встраивания прямо в ваш скрипт, так что вам не нужно носить с собой .com или .exe
http://www.codeproject.com/Articles/17033/Add-Colors-to-Batch-Files
источник
Я только что перешел из Win 7 Home в Win 10 Pro и хотел заменить пакет, который я вызываю, из других пакетов, чтобы отображать информацию в цвете. Рассматривая то, что обсуждалось выше, я использую следующее, которое напрямую заменит мою предыдущую партию. ОБРАТИТЕ ВНИМАНИЕ добавление «~» к сообщению, чтобы можно было использовать сообщения с пробелами. Вместо того, чтобы запоминать коды, я использую буквы для нужных мне цветов.
Если% 2 содержит пробелы, требуется "..."% 1 Сильные цвета на черном: R = Красный G = ЗЕЛЕНЫЙ Y = ЖЕЛТЫЙ W = БЕЛЫЙ
источник
Чтобы изменить цвет текста, вам нужно будет отобразить последовательность escape-кода ANSI: http://en.wikipedia.org/wiki/ANSI_escape_code
Еще один очень хороший источник этих escape-кодов - http://ascii-table.com/ansi-escape-septions.php
источник
Поместите следующие строки в файл с именем
ColourText.bas
на вашем рабочем столе.Сохраните его и введите следующее в командной строке.
Файл с именем ColourText.exe появится на вашем рабочем столе. Переместите его в папку Windows .
Чтобы использовать, вы должны использовать два кода символов, чтобы установить цвет, например,
01
нет1
.Например, чтобы установить синий на белый, не пропуская текст, затем красный на белый текст, заканчивая синим на сером.
или
Также
CLS
команда становится интересной.Color
Команда без параметров сбрасывает все цвета в стартовые цвета.Чтобы получить код цвета, сложите следующие цифры. Используйте калькулятор в режиме программистов. Это шестнадцатеричные числа. Их можно добавить вместе, например, Red + Blue + FG Intensity = 13 = D. Поскольку 10+ не использовалось, фон будет черным. Цветовые коды ДОЛЖНЫ быть двумя символами, например,
08
нет8
.источник
Для того, чтобы получить эту работу на Windows 10, вы можете включить этот флаг:
ENABLE_VIRTUAL_TERMINAL_PROCESSING
.С этим ключом реестра вы можете установить его по умолчанию
[HKCU\Console] VirtualTerminalLevel dword 0x1
источник
Альтернативой является использование NodeJS .
Вот пример:
И вот результат:
источник
Как сказал Гленн Слэйден в этом ответе , вы можете добавить в реестр правильное значение, чтобы сделать cmd «более красочным».
источник
Установка цвета для операторов журнала в powershell не имеет большого значения, друг. Вы можете использовать
-ForegroundColor
параметр.Написать подтверждающее сообщение.
Написать сообщение об ошибке.
Написать сообщение о прогрессе .
источник
источник
%ESC%
пусто, так что это не сработает.echo !white!
устанавливает цвет на белый. Чтобы вернуться к цветам по умолчанию (какими бы ни были настройки пользователя): этоcolor
делает команда без параметров.Мы привыкли делать это с терминальными кодами ANSI . Не уверен, что они все еще работают, но вы можете попробовать их.
источник
Вы можете использовать команду цвета, чтобы изменить цвет всей консоли
Черный и белый
Черный и зеленый
источник