Hata iletilerini Komut İstemi'nden yeniden yönlendirme: STDERR/STDOUT

Bu makalede, Komut İstemi'nden hata iletilerini yeniden yönlendirme açıklanmaktadır.

Orijinal ürün sürümü: Visual C++
Özgün KB numarası: 110930

Özet

Bir uygulamanın çıkışını simgeyi > kullanarak yeniden yönlendirirken, hata iletileri 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 çıkış genellikle iki ayrı akışa gönderilir. Normal çıkış Standart Çıkış'a (STDOUT) ve hata iletileri Standart Hata'ya (STDERR) gönderilir. Konsol çıkışını simgeyi > kullanarak yeniden yönlendirdiğinizde, yalnızca STDOUT'yi yeniden yönlendirirsiniz. STDERR'yi yeniden yönlendirmek için yeniden yönlendirme simgesi belirtmeniz gerekir 2> . Bu, STDERR olan ikinci çıkış akışını seçer.

Örnek

komutu dir file.xxx (file.xxx mevcut olmadığı durumlarda) aşağıdaki çıkışı görüntüler:

F sürücüsündeki birim şeker cane birim seri numarası 34EC-0876 olduğunu
Dosya Bulunamadı

kullanarak çıkışı NUL cihazına dir file.xxx > nulyeniden yönlendirirseniz hata iletisini görmeye devam edebilirsiniz:

Dosya Bulunamadı

Hata iletisini NUL'ye yeniden yönlendirmek için aşağıdaki komutu kullanın:

dir file.xxx 2> nul

Ya da çıkışı bir yere, hataları da başka bir yere yönlendirebilirsiniz.

dir file.xxx > output.msg 2> output.err

STDERR çıkışını STDOUT'a yeniden yönlendirmek ve ardından STDOUT çıktısını bir dosyaya göndermek için komutunu kullanarak &1 hataları ve standart çıkışı tek bir dosyaya yazdırabilirsiniz:

dir file.xxx 1> output.msg 2>&1