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?
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.
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.
@command > nul 2>&1
Jawaban:
Baca halaman Menggunakan operator pengalihan perintah . Selain konstruksi "2>" yang disebutkan oleh Tanuki Software, ini mencantumkan beberapa kombinasi berguna lainnya.
sumber
copy foo.txt con >> bar 2>nul
. bar akan berisi teks yang disalin satu file dan konsol akan berisi konten foo.txt .@for /L %C in (1,1,10) do @type nonexistent 2> nul
tidak tidak menghasilkan baris kosong sepuluh.con
bukan 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.stderr
.