Batch-Skripthilfe erforderlich

Batch-Skripthilfe erforderlich

Ich habe ein Batch-Skript erstellt, das eine ausführbare Datei neu startet. Ich versuche, es dazu zu bringen, alle Fehler in einer Protokolldatei auszugeben.

Mein Skript ist

@echo on

timeout /t 03

set logfile=c:\users\administrator\desktop\C4W\Logs\status.log
echo starting system.exe at %date% %time% >> %logfile%
"./system.exe" -connection "sql instance" -model "model number" -username "admin" -password "" -id 2  >> %logfile%

Pause

Exit 0

Wie Sie sehen, stellt meine ausführbare Datei eine Verbindung zu einer SQL-Instanz und einem Modell innerhalb der SQL-Datenbank her. Wenn ich die Batchdatei ausführe, wird auf dem Bildschirm die Fehlermeldung „Die Eingabe ist keine gültige Base-64-Zeichenfolge, da sie ein Nicht-Base-64-Zeichen, mehr als zwei Füllzeichen oder ein anderes als ein Leerzeichen unter den Füllzeichen enthält“ angezeigt. In meiner Protokolldatei wird dieser Fehler jedoch nicht angezeigt. Sie zeigt lediglich, dass meine ausführbare Datei mit angezeigtem Datum und Uhrzeit ausgeführt wurde. Ich habe versucht, das Symbol & in >>& %logfile% einzufügen, aber dann wird die Fehlermeldung nicht im Befehlsfenster angezeigt und auch in meinem Protokoll wird sie nicht angezeigt.

Kann irgendjemand erkennen, wo ich einen Fehler mache?

Antwort1

Um die Fehlerausgabe des Befehls zusammen mit der Standardausgabe in Ihre Protokolldatei umzuleiten, hängen Sie >>logfile.txt 2>>&1Folgendes an Ihren Befehl an:

yourcommand.exe >>logfile.txt 2>>&1

Die 2>>&1Syntax ist erforderlich, um die StdOut- und SteErr-Streams für die Umleitung in die Protokolldatei zu „kombinieren“.

Mehr Informationen

verwandte Informationen