Как изменить цвет текста строки комментариев в командном файле - PullRequest
1 голос
/ 06 апреля 2010

У меня есть пакетный файл следующим образом:

myfile.bat
:: This is a sample batch file

@echo off
echo change directory to d: <---How to change color of only this line (comments lines)
CD d:\
...

Ответы [ 3 ]

1 голос
/ 18 декабря 2011

Почти идентичный вопрос был задан через 6 месяцев после этого, и Джеб дал хороший ответ 3 после этого: как иметь несколько цветов в пакетном файле?

Его ответ позволяет печатать несколько цветов в одной строке!

Вот адаптация его решения в виде отдельного пакетного файла, который можно использовать в качестве утилиты для цветной печати в пакетном режиме. Чтобы напечатать Hello world! красным текстом на белом фоне, вы должны использовать call colorText f4 "Hello world!". Смотрите комментарии в коде для полной документации и ограничений.

@echo off
:ColorText Color String
::
:: Prints String in color specified by Color.
::
::   Color should be 2 hex digits
::     The 1st digit specifies the background
::     The 2nd digit specifies the foreground
::     See COLOR /? for more help
::
::   String is the text to print. All quotes will be stripped.
::     The string cannot contain any of the following: * ? < > | : \ /
::     Also, any trailing . or <space> will be stripped.
::
::   The string is printed to the screen without issuing a <newline>,
::   so multiple colors can appear on one line. To terminate the line
::   without printing anything, use the ECHO( command.
::
setlocal
pushd %temp%
for /F "tokens=1 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
  <nul set/p"=%%a" >"%~2"
)
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
popd
exit /b
0 голосов
/ 26 октября 2010

Это исходный код программы, которая делает то, что вы хотите: http://www.mailsend -online.com / блог / установка текстовый цвет-в-партии-file.html

Я начинаю думать, что больше нет встроенного способа сделать это без дополнительной программы или изменений в системе пользователя.

В сторону. Для моего сценария, если бы потребовались изменения в системе пользователя, я бы просто выбрал вместо этого python, IronPython или JScript.NET.

0 голосов
/ 18 апреля 2010

Нет встроенного способа сделать это. Я предлагаю вам написать небольшую вспомогательную программу, которая либо изменяет цветовые атрибуты текста, который будет добавлен, либо пишет текст с определенными цветовыми атрибутами.

В C # это может выглядеть следующим образом:

using System;

class SetConsoleColor {
    static void Main(string[] args) {
        if (args.Length < 3) {
            Console.Error.WriteLine("Usage: SetConsoleColor [foreground] [background] [message]");
            return;
        }

        Console.ForegroundColor = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), args[0], true);
        Console.BackgroundColor = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), args[1], true);

        Console.WriteLine(args[2]);

        Console.ResetColor();
    }
}

Не стесняйтесь портировать на C или другой язык, который вам нравится; это был самый быстрый способ для меня после борьбы с монстром в 50 строчек C, который все еще не работал; -).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...