繁体   English   中英

更改批处理文件日志的字体颜色

[英]Change font color for batch file log

我正在从批处理文件执行exe文件。 这将运行Windows应用程序。 每次我在应用程序中进行一些活动时,都会在批处理命令提示符下打印日志。 我想用颜色突出显示日志中的特定文本,以便可以查明后端活动。 我该怎么做呢?

我的批处理文件看起来像这样吗?

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

您可以创建自己的echo命令。

ColourText.bas桌面上名为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 not 1

ColourText ColourOfText ColourOfTextWhenFinished Text

EG通过不传递任何文本来在白色上设置蓝色,然后在白色文本上设置红色,最后以灰色显示蓝色。

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.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM