Çıktıyı Windows Komut Satırından Bir Metin Dosyasına Yönlendirin

Windows'ta(Windows) çalıştırdığınız komutların veya toplu işlerin davranışını günlüğe kaydetmenin ve sorun gidermenin en kullanışlı yollarından biri, çıktıyı bir dosyaya yeniden yönlendirmektir.

Ancak, komut satırı yazmalarını bir dosyaya yeniden yönlendirmenin birkaç farklı yolu vardır. Seçtiğiniz seçenek, komut çıktınızı nasıl görüntülemek istediğinize bağlıdır.

Windows Komut İstemi Çıktısı Nasıl Çalışır?(How Windows Command Prompt Output Works)

Windows konsolunda ( komut istemi(command prompt) ) bir komut yazdığınızda, bu komutun çıktısı iki ayrı akışa gider.

  • STDOUT : Standart Çıkış(Out) , komutlardan gelen herhangi bir standart yanıtın gittiği yerdir. Örneğin, DIR komutunun standart yanıtı, bir dizindeki dosyaların listesidir.
  • STDERR : Standart Hata(Standard Error) , komutla ilgili bir sorun olduğunda herhangi bir hata mesajının gittiği yerdir. Örneğin, dizinde herhangi bir dosya yoksa, DIR komutu Standart Hata(Standard Error) akışına “ Dosya(File) Bulunamadı” yazacaktır.

Bu çıktı akışlarının her ikisi için çıktıyı Windows'ta(Windows) bir dosyaya yeniden yönlendirebilirsiniz .

Standart Çıktıyı Yeni Dosyaya Yeniden Yönlendir(Redirect Standard Output Write to New File)

Bir komutun standart çıktısını bir dosyaya yeniden yönlendirmenin iki yolu vardır. Birincisi, komutu her çalıştırdığınızda komut çıktısını yeni bir dosyaya yazmaktır.

Bunu yapmak için komut istemini açın ve şunu yazın:

dir test.exe > myoutput.txt

> karakteri, konsola, sağladığınız adla dosyaya STDOUT çıktısını vermesini söyler.(STDOUT)

Bu komutu çalıştırdığınızda(run this command) , komut penceresinde dosyanın mevcut olmadığı hatası dışında herhangi bir yanıt olmadığını fark edeceksiniz.

Bunun nedeni, komutun standart çıktısının myoutput.txt adlı bir dosyaya yönlendirilmiş olmasıdır. Dosya artık komutu çalıştırdığınız dizinde bulunur. Standart hata çıktısı, normalde olduğu gibi görüntülenmeye devam eder.

Not(Note) : Komutu çalıştırmadan önce komut istemi için aktif dizini değiştirmeye dikkat edin. (change the active directory)Bu şekilde çıktı dosyalarının nerede saklandığını bileceksiniz.

Komut penceresine “myoutput.txt” yazarak dosyaya giden standart çıktıyı görüntüleyebilirsiniz. Bu, metin dosyasını varsayılan metin dosyası görüntüleyicinizde açacaktır. Çoğu insan için bu genellikle Notepad.exe'dir(Notepad.exe) .

Aynı komutu bir sonraki çalıştırışınızda, önceki çıktı dosyası silinecektir. En son komutun çıktısıyla yeni bir çıktı dosyası yeniden oluşturulacaktır.

Standart Çıktıyı (Standard Output)Aynı Dosyaya(Same File) Yeniden Yönlendir

Ya aynı dosyanın üzerine yazmak istemiyorsanız? Başka bir seçenek de bir çıktı dosyasına yönlendirmek için > yerine >> kullanmaktır. Bu örnekte, şunu yazarsınız:

dir test.exe >> myoutput.txt

Aynı çıktıyı göreceksiniz (yalnızca hata).

Ancak bu durumda, çıktı dosyasının üzerine yazmak yerine, bu komut yeni çıktıyı mevcut çıktı dosyasına ekler.

Her komut çalıştırdığınızda ve çıktıyı bir dosyaya eklediğinizde, yeni standart çıktıyı mevcut dosyanın sonuna yazar.

Standart Hatayı Dosyaya Yönlendir(Redirect Standard Error To a File)

Standart çıktı yazmalarını bir dosyaya yeniden yönlendirebilmeniz gibi, standart hata akışını da bir dosyaya gönderebilirsiniz.

2> ve ardından oluşturmak istediğiniz çıktı hata dosyasını eklemeniz gerekir .

Bu örnekte şu komutu yazacaksınız: 

dir test.exe > myoutput.txt 2> output.err

Bu, standart çıktı akışını myoutput.txt dosyasına ve standart hata akışını output.err dosyasına gönderir. Sonuç olarak, konsol penceresinde hiçbir çıktı akışı görüntülenmez.

Ancak output.err(output.err) yazarak hata mesajlarını görebilirsiniz . Bu, dosyayı varsayılan metin dosyası görüntüleyicinizde açacaktır.

Gördüğünüz gibi, komuttan gelen herhangi bir hata mesajı, hata dosyasına gönderilir. Standart çıktıda olduğu gibi ,(Just) hatayı daha önce çalıştırılan komutlardan gelen hatalara eklemek için >>

Tüm Çıktı Yazmalarını Aynı Dosyaya Yönlendir(Redirect All Output Writes to a Same File)

Yukarıdaki yaklaşımların tümü birden fazla dosyayla sonuçlanır. Bir dosya standart çıktı akışı, diğeri ise standart hata akışı içindir.

Bu çıktıların her ikisini de aynı dosyaya dahil etmek istiyorsanız, bunu da yapabilirsiniz. Bunu yapmak için, aşağıdaki komutu kullanarak tüm çıktıları aynı dosyaya yönlendirmeniz yeterlidir.

dir test.exe 1> myoutput.txt 2>&1

Bu komut şu şekilde çalışır:

  • Standart çıktı, çıktı numarası 1 ile tanımlanan çıktı dosyasına yönlendirilir.
  • 2 numara ile tanımlanan standart hata çıktısı, 1 numara ile tanımlanan çıktı dosyasına yönlendirilir.

Bu, hata çıktısını standart çıktının sonuna ekleyecektir.

Bu, herhangi bir komutun tüm çıktılarını tek bir dosyada görmenin kullanışlı bir yoludur. 

Standart veya Hatalı Çıkış Akışlarını Susturma(Silencing Standard or Error Output Streams)

Çıktıyı bir dosya yerine NUL'a(NUL) yeniden yönlendirerek Standart Çıktı(Standard Output) veya Standart(Standard Error) Hata'yı da kapatabilirsiniz .

Yukarıdaki örneği kullanarak, yalnızca Standart Çıktı(Standard Output) istiyorsanız ve hiçbir Standart Hata(Standard Error) istemiyorsanız , aşağıdaki komutu kullanabilirsiniz:

dir test.exe 1> myoutput.txt 2>nul

Bu, yalnızca Standard Output(Standard Output) öğesini yeniden yönlendirdiğiniz yukarıdaki ilk örnekle aynı çıktı dosyasıyla sonuçlanacaktır , ancak bu komutla hata konsolun içinde yankılanmayacaktır. Bir hata günlüğü dosyası da oluşturmaz.

Bu, herhangi bir hatayı umursamıyorsanız ve bir sıkıntı haline gelmesini istemiyorsanız kullanışlıdır.

Yukarıdaki aynı çıktı komutlarından herhangi birini bir BAT dosyasının içinden(inside a BAT file) gerçekleştirebilirsiniz ve bu satırdan çıktı, belirttiğiniz çıktı dosyasına gidecektir. Bu, bir BAT(BAT) dosyasındaki herhangi bir komutun çalıştırılmaya çalışıldığında herhangi bir hata olup olmadığını görmenin kullanışlı bir yoludur .



About the author

Excel ve PowerPoint dahil olmak üzere Microsoft Office yazılımlarıyla çalışma deneyimine sahip bir bilgisayar uzmanıyım. Ayrıca Google'a ait bir tarayıcı olan Chrome ile de deneyimim var. Becerilerim arasında mükemmel yazılı ve sözlü iletişim, problem çözme ve eleştirel düşünme yer alır.



Related posts