Hata Mesajlarını Komut İsteminden Yeniden Yönlendirme: STDERR / STDOUT
özet
'>' Sembolünü kullanarak bir uygulamadan çıktıyı yeniden yönlendirirken, hata mesajları yine de ekrana yazdırılır. Bunun nedeni, hata iletilerinin genellikle Standart Çıkış akışı yerine Standart Hata akışına gönderilmesidir.
Bir konsol (Komut İstemi) uygulamasından veya komutundan çıktı genellikle iki ayrı akışa gönderilir. Normal çıkış Standart Çıkış (STDOUT) 'a ve hata mesajları Standart Hata (STDERR)' a gönderilir. Konsol çıkışını ">" simgesini kullanarak yeniden yönlendirdiğinizde, yalnızca STDOUT'u yeniden yönlendirirsiniz. STDERR'ı yeniden yönlendirmek için yönlendirme sembolü için '2>' belirtmeniz gerekir. Bu, STDERR olan ikinci çıkış akımını seçer.
Misal
Komut dir file.xxx
( file.xxx
mevcut olmayan yerlerde) aşağıdaki çıktıyı görüntüler:
Volume in drive F is Candy Cane Volume Serial Number is 34EC-0876
File Not Found
Çıkışı NUL
kullanarak cihaza yeniden yönlendirirseniz, dir file.xxx > nul
yine de çıkışın hata mesajı kısmını göreceksiniz:
File Not Found
Hata iletisini adresine (yalnızca) yönlendirmek NUL
için aşağıdaki komutu kullanın:
dir file.xxx 2> nul
Veya çıktıyı bir yere, hataları başka bir yere yönlendirebilirsiniz.
dir file.xxx > output.msg 2> output.err
"& 1" komutunu kullanarak çıktıyı STDERR'a STDOUT'a yönlendirmek ve daha sonra çıktıyı STDOUT'tan bir dosyaya göndermek için hataları ve standart çıktıyı tek bir dosyaya yazdırabilirsiniz:
dir file.xxx 1> output.msg 2>&1