Wie LotPings in seinem Kommentar und seiner Antwort sagt, können Sie die Ausgabe immer direkt über die Konsole steuern >con
(Hinweis: Das Nachlaufen :
wird nicht benötigt).
Aber nicht alle Funktionen funktionieren einwandfrei, wenn Sie dazu aufgefordert werden con
. Zum Beispiel wird cls
der Bildschirm nicht richtig gelöscht.
Eine andere Option besteht darin, eine Kopie des ursprünglichen stdout zu speichern, bevor Sie in eine Datei umgeleitet werden, und dann die speziellen Befehle an das gespeicherte Handle weiterleiten.
@echo off 9>&1 1>stdout.txt 2>stderr.txt ( echo Most output goes to a file echo Hello world >&9 echo But this goes to the original definition of stdout - the console )
Beachten Sie, dass jedes Mal, wenn Sie ein vorhandenes Handle umleiten, die ursprüngliche Definition im ersten verfügbaren undefinierten Handle gespeichert wird, bevor die Umleitung ausgeführt wird. Angenommen, es gab keine vorherige Umleitung, dann zeigt & 3 unten auf das Original stdout (Konsole), sodass keine explizite Speicherung auf 9 erforderlich ist.
@echo off 1>stdout.txt 2>stderr.txt ( echo Most output goes to a file echo Hello world >&3 echo But this normally goes to the original definition of stdout - the console )
Ich möchte mich jedoch nicht auf das implizite Speichern verlassen, da ich nicht garantieren kann, dass 3 noch nicht verwendet wurde. Daher kann ich nicht das korrekte Ergebnis erhalten. Speichern Sie am besten explizit in einem von Ihnen angegebenen nicht verwendeten Handle.