Как я могу изменить цвет текста в командной строке окон

Третья строка,

hour = round(now.hour, 2)

round вернет 22.00 с 22:00 ~ 22:59 и 23.00 с 23:00 ~ 23:59.

Итак, ваше состояние ниже этого никогда не получалось.

(hour > 22.00 and hour < 23.00)

(22.00 не больше, чем 22.00, а 23.00 не меньше, чем 23.00.)

Исправлено условие:

(hour >= 22.00 and hour < 23.00)

или [ 1117]

(hour > 22.00 and hour <= 23.00)

или, может быть, вы хотите

(hour == 22.00)
12
задан Orion Edwards 16 September 2008 в 22:06
поделиться

13 ответов

Необходимо получить доступ [Консольный API Win32] ( http://msdn.microsoft.com/en-us/library/ms682073 (По сравнению с 85%29.aspx) . К сожалению, я не знаю, как Вы сделали бы это от Ruby. В Perl я использовал бы Win32:: Консольный модуль. Консоль Windows не отвечает на управляющие коды ANSI.

Согласно статья о колоризации Ruby произвел , что artur02 упомянул, необходимо установить & загрузите win32console драгоценный камень.

6
ответ дан 2 December 2019 в 03:33
поделиться

Вы могли использовать escape-последовательность ANSI, но так не пойдет, что Вы хотите под современными версиями Windows. Википедия имеет очень информативную статью:

http://en.wikipedia.org/wiki/ANSI_escape_code

, Таким образом, ответ на Ваш исходный вопрос является почти наверняка "нет". Однако можно изменить основной цвет, не пишущий escape-последовательность, например, путем вызова Win32 API function. Я не знаю, как сделать этот вид вещи в Ruby первое, что пришло на ум, но кто-то еще, кажется, справился:

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/241925

, я предполагаю, что Вы хотели бы использовать 4 для темно-красного или 12 для яркого красного, и 7 для восстановления цвета по умолчанию.

Hope это помогает!

2
ответ дан 2 December 2019 в 03:33
поделиться

Можно прочитать здесь хорошую и проиллюстрированную статью: http://kpumuk.info/ruby-on-rails/colorizing-console-ruby-script-output/

я думаю, устанавливая консольный цвет текста, является довольно определенным для языка. Вот пример в C# из MSDN:

for (int x = 0; x < colorNames.Length; x++)
{
  Console.Write("{0,2}: ", x);
  Console.BackgroundColor = ConsoleColor.Black;
  Console.ForegroundColor = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), colorNames[x]);
  Console.Write("This is foreground color {0}.", colorNames[x]);
  Console.ResetColor();
  Console.WriteLine();
}

Консоль. ForegroundColor является свойством для установки цвета текста.

3
ответ дан 2 December 2019 в 03:33
поделиться

На окнах можно сделать это легко тремя способами:

require 'win32console'
puts "\e[31mHello, World!\e[0m"

Теперь Вы могли расширить Строку с помощью маленького метода, названного red

 require 'win32console'
 class String
   def red
     "\e[31m#{self}\e[0m"
   end
 end

 puts "Hello, World!".red

, Также можно расширить Строку как это для получения большего количества цветов:

require 'win32console'

class String
  { :reset          =>  0,
    :bold           =>  1,
    :dark           =>  2,
    :underline      =>  4,
    :blink          =>  5,
    :negative       =>  7,
    :black          => 30,
    :red            => 31,
    :green          => 32,
    :yellow         => 33,
    :blue           => 34,
    :magenta        => 35,
    :cyan           => 36,
    :white          => 37,
  }.each do |key, value|
    define_method key do
      "\e[#{value}m" + self + "\e[0m"
    end
  end
end

puts "Hello, World!".red

Или, если можно установить драгоценные камни:

gem install term-ansicolor

И в Вашей программе:

require 'win32console'
require 'term/ansicolor'

class String
  include Term::ANSIColor
end

puts "Hello, World!".red
puts "Hello, World!".blue
puts "Annoy me!".blink.yellow.bold

см. документы для term/ansicolor для получения дополнительной информации и возможного использования.

25
ответ дан 2 December 2019 в 03:33
поделиться

Я использовал бесплатную программу хвоста окон, названную baretail (погуглите его), целую вечность, который позволяет Вам сделать версию окон-appified команды хвоста Unix. Это позволяет Вам colorize строки, зависящие от любых ключевых слов, которые Вы определяете. Что хорошо об этом, поскольку решение - не связанный с определенным языком или установкой, и т.д., Вы просто определяете свою цветовую схему и на подобном осле kong. В моих персональных лучших 10 бесплатных помощниках!

0
ответ дан 2 December 2019 в 03:33
поделиться

Вы хотите управляющие коды .

ANSI
0
ответ дан 2 December 2019 в 03:33
поделиться

В конечном счете необходимо звонить SetConsoleTextAttribute. Можно добраться, консоль скрывают буферный дескриптор от GetStdHandle.

0
ответ дан 2 December 2019 в 03:33
поделиться

Много старого ANSI Цветовые коды работа. Код для красного переднего плана - что-то как Escape - [31 м. Escape является символом 27, таким образом, это "\033 [31 м" или "\x1B [31 м", в зависимости от Вашей схемы выхода.

[39 м код для возврата к цвету по умолчанию.

также возможно определить несколько кодов сразу для выбирания основного цвета и цвета фона одновременно.

Вам, вероятно, придется загрузить ANSI.sys, видеть эта страница .

0
ответ дан 2 December 2019 в 03:33
поделиться

Стандартная спецификация C/C++ для вывода к командной строке не определяет возможностей изменения цвета консоли. Тем не менее существует много функций в Win32 для того, чтобы сделать такую вещь.

самый легкий способ изменить цвет консоли Win32 посредством системной команды в iostream.h. Эта функция вызывает команду DOS. Для изменения цветов мы будем использовать его для вызова цветной команды. Например, system("Color F1"); сделает консоль darkblue на белом.

Цвета DOS

цвета, доступные для использования с командой, являются шестнадцатью цветами DOS каждый представленный с шестнадцатеричной цифрой. Причем первым является фон и второе, являющееся передним планом.

0 = Black    8 = Gray
1 = Blue     9 = Light Blue
2 = Green    A = Light Green
3 = Aqua     B = Light Aqua
4 = Red      C = Light Red
5 = Purple   D = Light Purple
6 = Yellow   E = Light Yellow
7 = White    F = Bright White

Просто это небольшое касание цвета делает консольные программы более визуально приятными. Однако команда Color изменит цвет всей консоли. Для управления отдельными ячейками мы должны использовать функции от windows.h.

Действительно делают это, необходимо использовать SetConsoleAttribute функция

http://msdn.microsoft.com/en-us/library/ms686047.aspx

0
ответ дан 2 December 2019 в 03:33
поделиться

Насколько я знаю, что это не возможно с командной строкой, это - всего один цвет...

0
ответ дан 2 December 2019 в 03:33
поделиться
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Console_Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.DarkRed;
            Console.WriteLine("Hello World");
            Console.ReadKey();
        }
    }
}

можно изменить цвет с помощью простой программы C#, , http://powerof2games.com/node/31 описывает, как можно обернуть консольный вывод для достижения эффекта.

0
ответ дан 2 December 2019 в 03:33
поделиться

color [background][foreground]

, Где цвета определяются следующим образом:

0 = Black    8 = Gray
1 = Blue     9 = Light Blue
2 = Green    A = Light Green
3 = Aqua     B = Light Aqua
4 = Red      C = Light Red
5 = Purple   D = Light Purple
6 = Yellow   E = Light Yellow
7 = White    F = Bright White

, Например, для изменения предпосылок к синему и переднего плана к серому Вы ввели бы:

color 18

2
ответ дан 2 December 2019 в 03:33
поделиться

на управляющих кодах ANSI:

32-разрядный текстовый режим (subsystem:console) Приложения Windows не пишет escape-последовательности ANSI в консоль

, Они должны интерпретировать действия управляющего кода и назвать собственный Консольный API вместо этого

Спасибо Microsoft:-(

2
ответ дан 2 December 2019 в 03:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: