Nein, Sie können nicht mit reiner Umleitung.
Aber mit ein paar Tricks (wie tee.bat ) kannst du.
Ich versuche die Umleitung ein wenig zu erklären.
Sie leiten einen der zehn Streams mit > Datei oder <Datei um.
Es ist unwichtig, ob die Umleitung vor oder nach dem Befehl erfolgt, sodass diese beiden Zeilen nahezu identisch sind.
dir > file.txt
> file.txt dir
Die Umleitung in diesem Beispiel ist nur eine Verknüpfung für 1> . Dies bedeutet, dass der Stream 1 (STDOUT) umgeleitet wird.
Sie können also jeden Stream umleiten, indem Sie die Nummer 2> err.txt voranstellen. Außerdem können Sie mehrere Streams in einer Zeile umleiten.
dir 1> files.txt 2> err.txt 3> nothing.txt
In diesem Beispiel wird die "Standardausgabe" in files.txt gespeichert, alle Fehler werden in err.txt gespeichert und stream3 wird in nothing.txt gespeichert (DIR verwendet den Stream 3 nicht).
Stream0 ist STDIN
Stream1 ist STDOUT
Stream2 ist STDERR
Stream3-9 werden nicht verwendet
Aber was passiert, wenn Sie versuchen, denselben Stream mehrmals umzuleiten?
dir > files.txt > two.txt
"Es kann nur einen geben", und es ist immer der letzte!
Es ist also gleich dir> two.txt
Ok, es gibt eine zusätzliche Möglichkeit, einen Stream zu einem anderen Stream umzuleiten.
dir 1>files.txt 2>&1
2> & 1 leitet stream2 zu stream1 um und 1> files.txt leitet alle zu files.txt um .
Die Reihenfolge ist hier wichtig!
dir ... 1>nul 2>&1
dir ... 2>&1 1>nul
sind anders. Die erste Zeile leitet alle (STDOUT und STDERR) an NUL weiter,
die zweite Zeile leitet die STDOUT an NUL und STDERR an die "leere" STDOUT weiter.
Als eine Schlussfolgerung ist es offensichtlich, warum die Beispiele von Otávio Décio und andynormancx nicht funktionieren können.
command > file >&1
dir > file.txt >&2
Beide versuchen zweimal, stream1 umzuleiten, aber "Es kann nur einen geben", und es ist immer der letzte.
Also verstehst du
command 1>&1
dir 1>&2
Und im ersten Beispiel ist die Umleitung von Stream1 zu Stream1 nicht zulässig (und nicht sehr nützlich).
Ich hoffe es hilft.