วิธีเปลี่ยนเส้นทาง stderr เป็น null ใน cmd.exe


122

ฉันมีแอปพลิเคชันที่บันทึกเสียงรบกวนจำนวนมากไปยัง stderr และทำให้การทำงานของแอปพลิเคชันช้าลงจริงๆ ฉันต้องการเปลี่ยนเส้นทางผลลัพธ์นั้นเป็น null เป็นไปได้กับ cmd.exe หรือไม่?


23
ดังนี้: command 2> nul
Naytzyrhc

3
คุณช่วยใส่เป็นคำตอบได้ไหม ใช้งานได้ดี!
Ignacio Soler Garcia


ฉันต้องการปิดคำสั่งโดยสิ้นเชิง (stdout และ stderr) do@command > nul 2>&1
kofifus

คำตอบ:


172
Your DOS command 2> nul

อ่านหน้าใช้ประกอบการเปลี่ยนเส้นทางคำสั่ง นอกจากโครงสร้าง "2>" ที่กล่าวถึงโดย Tanuki Software แล้วยังมีรายการชุดค่าผสมที่มีประโยชน์อื่น ๆ อีกด้วย


1
copy foo.txt con >> bar 2>nulแต่ต่อไปนี้จะทำเกือบตรงข้ามของสิ่งที่บางคนอาจจะคาดหวังว่า บาร์จะมีข้อความหนึ่งไฟล์ (s) คัดลอกและคอนโซลจะ containt เนื้อหาของfoo.txt
Patrick Fromberg

1
@Mawg ฉันไม่คิดว่ามันจะเป็นเช่นนั้น อาจเป็นสิ่งที่เฉพาะเจาะจงสำหรับสถานการณ์การใช้งานของคุณ ในกรณีที่จุด: @for /L %C in (1,1,10) do @type nonexistent 2> nulไม่ได้ผลิตบรรทัดว่างสิบ
atzz

2
@PatrickFromberg นั่นเป็นเพราะconไม่ใช่คำพ้องความหมายสำหรับ STDOUT; เป็น pseudofile ที่เกี่ยวข้องกับคอนโซลจริงดังนั้นจึงไม่ได้รับผลกระทบจากการเปลี่ยนเส้นทาง ค่อนข้างคล้ายกับ Linuxish (cat /proc/version > /dev/tty) > bar: การเปลี่ยนเส้นทางภายนอกจะไม่ส่งผลกระทบต่อภายใน
atzz

1
@SamHabiel ไม่จริง คำถามคือเกี่ยวกับstderr.
atzz

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.