Hayır, saf yönlendirme ile yapamazsınız.
Ama bazı hilelerle ( tee.bat gibi ) yapabilirsiniz.
Yönlendirmeyi biraz açıklamaya çalışıyorum.
On akıştan birini > dosya veya <dosya ile yeniden yönlendirirsiniz. Yeniden yönlendirme
komuttan önce veya sonraysa, önemsizdir, bu nedenle bu iki satır hemen hemen aynıdır.
dir > file.txt
> file.txt dir
Bu örnekteki yönlendirme yalnızca 1> için bir kısayoldur , yani akış 1 (STDOUT) yeniden yönlendirilecektir.
Böylece herhangi bir akışı 2> err.txt gibi bir sayı ekleyerek yeniden yönlendirebilirsiniz ve ayrıca bir satırda birden fazla akışı yeniden yönlendirmesine izin verilir.
dir 1> files.txt 2> err.txt 3> nothing.txt
Bu örnekte "standart çıktı" files.txt dosyasına, tüm hatalar err.txt dosyasında ve stream3 hiçbir şey.txt dosyasında olacaktır (DIR, akış 3'ü kullanmaz).
Stream0 is STDIN
Stream1 is STDOUT
Stream2 is STDERR
Stream3-9 kullanılmıyor
Ancak aynı akışı birden çok kez yönlendirmeye çalışırsanız ne olur?
dir > files.txt > two.txt
"Sadece bir tane olabilir" ve her zaman sonuncusu!
Yani dir> two.txt 'e eşittir
Tamam, bir akışı başka bir akışa yönlendiren fazladan bir olasılık var.
dir 1>files.txt 2>&1
2> ve 1 yönlendirme stream2 için Stream1 ve 1> files.txt yönlendirmeler tüm files.txt .
Burada sipariş önemlidir!
dir ... 1>nul 2>&1
dir ... 2>&1 1>nul
farklıdır. Birincisi tümünü (STDOUT ve STDERR) NUL'a yönlendirir,
ancak ikinci satır STDOUT'u NUL'a ve STDERR'ı "boş" STDOUT'a yönlendirir.
Bir sonuç olarak, Otávio Décio ve andynormancx örneklerinin neden çalışamayacağı açıktır.
command > file >&1
dir > file.txt >&2
Her ikisi de stream1'i iki kez yönlendirmeye çalışır, ancak "Yalnızca bir tane olabilir" ve her zaman sonuncusudur.
Yani sen al
command 1>&1
dir 1>&2
Ve ilk örnekte stream1'in stream1'e yönlendirilmesine izin verilmez (ve çok yararlı değildir).
Umarım yardımcı olur.