วิธีจับเชลล์เอาต์พุตไปยังไฟล์ข้อความ?


4

ใน linux ฉันสามารถพิมพ์echo "hello" >& text.outputและรับเอาท์พุทข้อความในไฟล์

ฉันจะรับเอาต์พุตประเภทนี้ใน Windows 8 ได้อย่างไร

มีวิธีบอกข้อผิดพลาดจากเอาต์พุตหรือไม่?

แรงจูงใจของฉันพยายามบันทึกผลลัพธ์tracertและตรวจสอบความแตกต่างระหว่าง Windows 8 และ Windows 7


คือ72162อะไร
jsalonen

นั่นคือพิมพ์ผิด ...
มิคาอิล

สำเนาซ้ำที่เป็นไปได้ของsuperuser.com/questions/99066/…
Der Hochstapler

คำตอบ:


6

เช่นเดียวกับใน Linux:

echo "Hello" >text.output

ข้อผิดพลาดมักจะพิมพ์ไปที่stderrกระแส (มันคือ # 2) คุณสามารถจับstderrกระแส:

del 1.txt 2>text.output

ถ้าไฟล์ที่1.txtไม่อยู่จะมีtext.outputCould not find 1.txt


คุณสามารถเปลี่ยนเส้นทางstdoutไปที่stderr:

echo "Hello" 2>&1

หรือstderrไปที่stdout:

echo "Hello" 1>&2

PS ฉันไม่แน่ใจว่าคำสั่งของคุณจะทำงานใน Linux อย่างไรก็ตามecho "hello" >& text.outputสร้างข้อผิดพลาดทางไวยากรณ์:>& was unexpected at this time.


มันใช้งานได้กับ Gentoo และ SLES มันอาจไม่เข้มงวดมาก POSIX
Mikhail


@OliverSalzburg ยังไม่รู้เกี่ยวกับเรื่องนี้ ขอบคุณ!
Alexey Ivanov

3

เชลล์ใน Windows ตอนนี้คล้ายกับ BASH บน Linux มาก ดังนั้นคุณสามารถทำได้

echo "Hello" > text.txt

หรือเรียกใช้โปรแกรมของคุณและให้ระบบส่งออกเขียนถึงtext.txt:

run_program > text.txt

หากคุณต้องการติดตามข้อผิดพลาดให้ใช้สิ่งต่อไปนี้:

run_program 2> error.txt

ข้อมูลเพิ่มเติมและตัวอย่างสามารถพบได้ที่นี่ การเปลี่ยนเส้นทาง I / O

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