Walaupun jawaban yang diterima untuk pertanyaan ini benar, itu benar-benar tidak banyak menjelaskan mengapa itu bekerja, dan karena sintaksnya tidak segera jelas saya melakukan google cepat untuk mencari tahu apa yang sebenarnya terjadi. Dengan harapan informasi ini bermanfaat bagi orang lain, saya mempostingnya di sini.
Mengarahkan Pesan Kesalahan dari Prompt Perintah: STDERR / STDOUT
Ringkasan
Saat mengarahkan output dari aplikasi menggunakan simbol '>', pesan kesalahan masih dicetak ke layar. Ini karena pesan kesalahan sering dikirim ke aliran Galat Standar alih-alih aliran Keluaran Standar.
Keluaran dari aplikasi atau perintah konsol (Command Prompt) sering dikirim ke dua aliran terpisah. Output reguler dikirim ke Standard Out (STDOUT) dan pesan kesalahan dikirim ke Standard Error (STDERR). Saat Anda mengarahkan output konsol menggunakan simbol ">", Anda hanya mengarahkan STDOUT. Untuk mengarahkan STDERR, Anda harus menentukan '2>' untuk simbol pengalihan. Ini memilih aliran output kedua yaitu STDERR.
Contoh
Perintah dir file.xxx
(di mana file.xxx
tidak ada) akan menampilkan output berikut:
Volume in drive F is Candy Cane Volume Serial Number is 34EC-0876
File Not Found
Jika Anda mengarahkan output ke NUL
perangkat menggunakan dir file.xxx > nul
, Anda masih akan melihat bagian pesan kesalahan dari output, seperti ini:
File Not Found
Untuk mengarahkan (hanya) pesan kesalahan ke NUL
, gunakan perintah berikut:
dir file.xxx 2> nul
Atau, Anda dapat mengarahkan output ke satu tempat, dan kesalahan ke yang lain.
dir file.xxx > output.msg 2> output.err
Anda dapat mencetak kesalahan dan output standar ke satu file dengan menggunakan perintah "& 1" untuk mengalihkan output untuk STDERR ke STDOUT dan kemudian mengirimkan output dari STDOUT ke file:
dir file.xxx 1> output.msg 2>&1