Изменение цвета шрифта для журнала пакетного файла

Я выполняю исполняемый файл из пакетного файла. Это запускает приложение Windows. Каждый раз, когда я делаю какое-то действие в приложении, журнал печатается в командной строке пакета. Я хотел бы выделить определенный текст в журнале с помощью цветов, чтобы я мог точно определить активность серверной части. Как это сделать?

Мой пакетный файл выглядит примерно так?

cd C:[Exe file location]
C:[Exe File]
pause

1 ответ

  1. Вы можете создать свою собственную команду echo.

    Поместите следующие строки в файл, вызываемый ColourText.basна рабочем столе.

    Imports System
    Imports System.IO
    Imports System.Runtime.InteropServices
    Imports Microsoft.Win32
    
    Public Module MyApplication  
    Public Declare Function GetStdHandle Lib "kernel32" Alias "GetStdHandle" (ByVal nStdHandle As Long) As Long
    Public Declare Function SetConsoleTextAttribute Lib "kernel32" Alias "SetConsoleTextAttribute" (ByVal hConsoleOutput As Long, ByVal wAttributes As Long) As Long
    Public Const STD_ERROR_HANDLE = -12&
    Public Const STD_INPUT_HANDLE = -10&
    Public Const STD_OUTPUT_HANDLE = -11&
    
    Sub Main()
        Dim hOut as Long
        Dim Ret as Long
        Dim Colour As Long
        Dim Colour1 As Long
        Dim Text As String
        hOut  = GetStdHandle(STD_OUTPUT_HANDLE)
        Colour = CLng("&h" & Split(Command(), " ")(0))
        Colour1 = Clng("&h" & Split(Command(), " ")(1))
        Text = Mid(Command(), 7)
        Ret = SetConsoleTextAttribute(hOut,  Colour)
        Console.Out.WriteLine(text)
        Ret = SetConsoleTextAttribute(hOut, Colour1)
    End Sub
    End Module
    

    Сохраните его и введите следующее в командной строке.

    "C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /target:exe /out:"%userprofile%\desktop\ColourText.exe" "%userprofile%\desktop\ColourText.bas" /verbose
    

    Файл с именем ColourText.exe появится на вашем рабочем столе. Переместите его в папку Windows .

    Для использования вы должны использовать два кода символов, чтобы установить цвет, например01, не 1.

    ColourText ColourOfText ColourOfTextWhenFinished Text
    

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

    ColourText F1 F1
    ColourText F2 71 This is green on white
    

    или

    ColourText F1 F1
    cls
    ColourText F4 F4
    Echo Hello
    Echo Hello today
    ColourText F1 F1
    

    Также CLSкоманда становится интересной. Colorкоманда без параметров сбрасывает все цвета на цвета запуска.

    Чтобы получить цветовой код, добавьте следующие цифры вместе. Используйте калькулятор в режиме программистов. Это шестнадцатеричные числа. Они могут быть добавлены вместе, например, красный + синий + FG интенсивность = 13 = D. Как 10+ не был использован фон будет черным. Цветовые коды должны быть двух символов, например08, не 8.

    FOREGROUND_RED = &H4     '  text color contains red.
    FOREGROUND_INTENSITY = &H8     '  text color is intensified.
    FOREGROUND_GREEN = &H2     '  text color contains green.
    FOREGROUND_BLUE = &H1     '  text color contains blue.
    BACKGROUND_BLUE = &H10    '  background color contains blue.
    BACKGROUND_GREEN = &H20    '  background color contains green.
    BACKGROUND_INTENSITY = &H80    '  background color is intensified.
    BACKGROUND_RED = &H40    '  background color contains red.