2016-12-30 4 views
0

Ich führe eine EXE-Datei aus einer Batch-Datei. Dies führt eine Windows-Anwendung. Jedes Mal, wenn ich in der Anwendung aktiv bin, wird ein Protokoll in der Stapelbefehlsaufforderung gedruckt. Ich möchte einen bestimmten Text im Protokoll mit Farben hervorheben, damit ich die Backend-Aktivität genau bestimmen kann. Wie mache ich das?Schriftfarbe für Batch-Dateiprotokoll ändern

Meine Batch-Datei sieht in etwa so aus?

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

Mögliches Duplikat [Wie mit verschiedenen Farben in der Windows-Kommandozeile echo] (http://stackoverflow.com/questions/2048509/how-to-echo-with-different-colors-in-the -windows-command-line) –

+1

Werfen Sie einen Blick auf diese ==> http://stackoverflow.com/questions/41309768/batch-file-to-run-ping-command-and-output-to-text-aswell/ 41316112 # 41316112 – Hackoo

Antwort

0

Sie können Ihren eigenen Echo-Befehl erstellen.

Setzen Sie die folgenden Zeilen in eine Datei ColourText.bas auf Ihrem Desktop genannt.

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 

Speichern Sie es und geben Sie Folgendes in eine Eingabeaufforderung ein.

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

Eine Datei namens ColourText.exe wird auf Ihrem Desktop angezeigt. Verschieben Sie es in den Windows-Ordner.

Zur Verwendung müssen Sie zwei Zeichencodes verwenden, um die Farbe festzulegen, z. B. 01 nicht 1.

Um Blau auf Weiß zu setzen, indem man keinen Text übergibt, dann rot auf weißem Text, der mit Blau auf Grau endet.

ColourText F1 F1 
ColourText F2 71 This is green on white 

oder

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

Auch der CLS Befehl wird interessant. Befehl ohne Parameter setzt alle Farben auf Startfarben zurück.

Um den Farbcode zu erhalten, fügen Sie die folgenden Zahlen zusammen. Verwenden Sie den Rechner im Programmiermodus. Dies sind Hex-Zahlen. Sie können zusammen addiert werden, z. B. Rot + Blau + FG Intensität = 13 = D. Da 10+ nicht verwendet wurde, ist der Hintergrund schwarz. Farbcodes MÜSSEN aus zwei Zeichen bestehen, zB 08 nicht 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.