Cara mengarahkan stderr ke null di cmd.exe

122

Saya memiliki aplikasi yang mencatat banyak suara ke stderr dan BENAR-BENAR memperlambat eksekusi aplikasi. Saya ingin mengarahkan keluaran itu ke null. Apakah ini mungkin dengan cmd.exe?

Ignacio Soler Garcia
sumber
23
seperti ini: perintah 2> nul
Naytzyrhc
3
Bisakah Anda menjelaskannya sebagai jawaban. Ini bekerja dengan baik!
Ignacio Soler Garcia
2
Lihat juga di superuser: > / dev / null untuk Windows
hippietrail
Saya Anda ingin membungkam sepenuhnya perintah (stdout dan stderr) lakukan@command > nul 2>&1
kofifus

Jawaban:

171
Your DOS command 2> nul

Baca halaman Menggunakan operator pengalihan perintah . Selain konstruksi "2>" yang disebutkan oleh Tanuki Software, ini mencantumkan beberapa kombinasi berguna lainnya.

atzz
sumber
1
Namun, mengikuti ini akan melakukan kebalikan dari apa yang diharapkan beberapa orang copy foo.txt con >> bar 2>nul. bar akan berisi teks yang disalin satu file dan konsol akan berisi konten foo.txt .
Patrick Fromberg
1
@Mawg Saya rasa tidak. Ini mungkin sesuatu yang spesifik untuk skenario penggunaan Anda. Contoh kasus: @for /L %C in (1,1,10) do @type nonexistent 2> nultidak tidak menghasilkan baris kosong sepuluh.
atzz
2
@PatrickFromberg Itu karena conbukan sinonim untuk STDOUT; ini adalah pseudofile yang terkait dengan konsol sebenarnya, jadi tidak terpengaruh oleh pengalihan. Agak mirip dengan Linuxish (cat /proc/version > /dev/tty) > bar: pengalihan luar tidak akan memengaruhi bagian dalam.
atzz
1
@SamHabiel Tidak juga. Pertanyaannya tentang stderr.
atzz
3
Halaman yang direferensikan
melegalkan