Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> ซอฟต์แวร์

เปลี่ยนเส้นทางเอาต์พุตจากบรรทัดคำสั่งของ Windows ไปยังไฟล์ข้อความ

วิธีหนึ่งที่มีประโยชน์ที่สุดในการบันทึกและแก้ไขปัญหาการทำงานของคำสั่งหรือชุดงานที่คุณเรียกใช้บน Windows คือการเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์

อย่างไรก็ตาม คุณสามารถเปลี่ยนเส้นทางการเขียนบรรทัดคำสั่งไปยังไฟล์ได้หลายวิธี ตัวเลือกที่คุณเลือกขึ้นอยู่กับว่าคุณต้องการดูผลลัพธ์ของคำสั่งอย่างไร

    เปลี่ยนเส้นทางเอาต์พุตจากบรรทัดคำสั่งของ Windows ไปยังไฟล์ข้อความ

    วิธีการทำงานของเอาต์พุตพร้อมท์คำสั่งของ Windows

    เมื่อคุณพิมพ์คำสั่งในคอนโซล Windows (พร้อมท์คำสั่ง) เอาต์พุตจากคำสั่งนั้นจะไปที่สตรีมสองสตรีมแยกกัน

    • STDOUT :Standard Out คือที่ที่การตอบสนองมาตรฐานจากคำสั่งไป ตัวอย่างเช่น การตอบสนองมาตรฐานสำหรับคำสั่ง DIR คือรายการไฟล์ภายในไดเร็กทอรี
    • STDERR :ข้อผิดพลาดมาตรฐานเป็นที่ที่ข้อความแสดงข้อผิดพลาดไปหากมีปัญหากับคำสั่ง ตัวอย่างเช่น หากไม่มีไฟล์ในไดเรกทอรี คำสั่ง DIR จะส่งออก “ไม่พบไฟล์” ไปยังสตรีมข้อผิดพลาดมาตรฐาน

    คุณสามารถเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ใน Windows สำหรับสตรีมเอาต์พุตทั้งสองนี้ได้

    เปลี่ยนเส้นทางการเขียนเอาต์พุตมาตรฐานไปยังไฟล์ใหม่

    มีสองวิธีที่คุณสามารถเปลี่ยนเส้นทางเอาต์พุตมาตรฐานของคำสั่งไปยังไฟล์ได้ อย่างแรกคือการส่งเอาต์พุตคำสั่งเขียนไปยังไฟล์ใหม่ทุกครั้งที่คุณเรียกใช้คำสั่ง

    โดยเปิดพรอมต์คำสั่งแล้วพิมพ์:

    dir test.exe > myoutput.txt

    อักขระ> บอกให้คอนโซลส่งออก STDOUT ไปยังไฟล์ที่มีชื่อที่คุณระบุ

    เมื่อคุณเรียกใช้คำสั่งนี้ คุณจะสังเกตเห็นว่าไม่มีการตอบสนองใดๆ ในหน้าต่างคำสั่ง ยกเว้นข้อผิดพลาดที่ไฟล์ไม่มีอยู่

    เปลี่ยนเส้นทางเอาต์พุตจากบรรทัดคำสั่งของ Windows ไปยังไฟล์ข้อความ

    เนื่องจากเอาต์พุตมาตรฐานสำหรับคำสั่งถูกเปลี่ยนเส้นทางไปยังไฟล์ชื่อ myoutput.txt ไฟล์นี้อยู่ในไดเร็กทอรีเดียวกันกับที่คุณรันคำสั่ง เอาต์พุตข้อผิดพลาดมาตรฐานยังคงแสดงตามปกติ

    หมายเหตุ :โปรดใช้ความระมัดระวังในการเปลี่ยนไดเร็กทอรีแอ็คทีฟสำหรับพรอมต์คำสั่งก่อนที่จะรันคำสั่ง วิธีนี้จะทำให้คุณรู้ว่าไฟล์ที่ส่งออกเก็บไว้ที่ไหน

    คุณสามารถดูเอาต์พุตมาตรฐานที่ไปยังไฟล์ได้โดยพิมพ์ "myoutput.txt" ในหน้าต่างคำสั่ง การดำเนินการนี้จะเปิดไฟล์ข้อความในโปรแกรมดูไฟล์ข้อความเริ่มต้นของคุณ สำหรับคนส่วนใหญ่ นี่คือ Notepad.exe

    เปลี่ยนเส้นทางเอาต์พุตจากบรรทัดคำสั่งของ Windows ไปยังไฟล์ข้อความ

    ครั้งต่อไปที่คุณเรียกใช้คำสั่งเดียวกัน ไฟล์เอาต์พุตก่อนหน้าจะถูกลบออก ไฟล์เอาต์พุตใหม่จะถูกสร้างขึ้นใหม่ด้วยเอาต์พุตของคำสั่งล่าสุด

    เปลี่ยนเส้นทางเอาต์พุตมาตรฐานเขียนไปยังไฟล์เดียวกัน

    จะทำอย่างไรถ้าคุณไม่ต้องการเขียนทับไฟล์เดียวกัน อีกทางเลือกหนึ่งคือใช้>> แทน> เพื่อเปลี่ยนเส้นทางไปยังไฟล์เอาต์พุต ในกรณีของตัวอย่างนี้ คุณจะต้องพิมพ์:

    dir test.exe >> myoutput.txt

    คุณจะเห็นผลลัพธ์เดียวกัน (ข้อผิดพลาดเท่านั้น)

    เปลี่ยนเส้นทางเอาต์พุตจากบรรทัดคำสั่งของ Windows ไปยังไฟล์ข้อความ

    แต่ในกรณีนี้ แทนที่จะเขียนทับไฟล์เอาต์พุต คำสั่งนี้จะผนวกเอาต์พุตใหม่เข้ากับไฟล์เอาต์พุตที่มีอยู่

    เปลี่ยนเส้นทางเอาต์พุตจากบรรทัดคำสั่งของ Windows ไปยังไฟล์ข้อความ

    ทุกครั้งที่คุณเรียกใช้คำสั่งและเพิ่มเอาต์พุตไปยังไฟล์ คำสั่งนั้นจะเขียนเอาต์พุตมาตรฐานใหม่ไปที่ส่วนท้ายของไฟล์ที่มีอยู่

    เปลี่ยนเส้นทางข้อผิดพลาดมาตรฐานไปยังไฟล์

    เช่นเดียวกับที่คุณสามารถเปลี่ยนเส้นทางการเขียนเอาต์พุตมาตรฐานไปยังไฟล์ คุณยังสามารถส่งออกสตรีมข้อผิดพลาดมาตรฐานไปยังไฟล์ได้อีกด้วย

    ในการดำเนินการนี้ คุณจะต้องเพิ่ม 2> ต่อท้ายคำสั่ง ตามด้วยไฟล์แสดงข้อผิดพลาดที่คุณต้องการสร้าง

    ในตัวอย่างนี้ คุณจะต้องพิมพ์คำสั่ง:

    dir test.exe > myoutput.txt 2> output.err

    สิ่งนี้จะส่งสตรีมเอาต์พุตมาตรฐานไปที่ myoutput.txt และสตรีมข้อผิดพลาดมาตรฐานไปที่ output.err ผลลัพธ์คือไม่มีเอาต์พุตสตรีมปรากฏในหน้าต่างคอนโซลเลย

    เปลี่ยนเส้นทางเอาต์พุตจากบรรทัดคำสั่งของ Windows ไปยังไฟล์ข้อความ

    อย่างไรก็ตาม คุณสามารถดูข้อความแสดงข้อผิดพลาดได้โดยพิมพ์ output.err . การดำเนินการนี้จะเปิดไฟล์ในโปรแกรมดูไฟล์ข้อความเริ่มต้นของคุณ

    เปลี่ยนเส้นทางเอาต์พุตจากบรรทัดคำสั่งของ Windows ไปยังไฟล์ข้อความ

    อย่างที่คุณเห็น ข้อความแสดงข้อผิดพลาดจากคำสั่งจะถูกส่งออกไปยังไฟล์ข้อผิดพลาด เช่นเดียวกับเอาต์พุตมาตรฐาน คุณสามารถใช้ >> แทนการผนวกข้อผิดพลาดต่อข้อผิดพลาดจากคำสั่งที่เรียกใช้ก่อนหน้านี้แทน

    เปลี่ยนเส้นทางการเขียนเอาต์พุตทั้งหมดไปยังไฟล์เดียวกัน

    วิธีการทั้งหมดข้างต้นส่งผลให้เกิดไฟล์หลายไฟล์ ไฟล์หนึ่งใช้สำหรับสตรีมเอาต์พุตมาตรฐานและอีกไฟล์สำหรับสตรีมข้อผิดพลาดมาตรฐาน

    หากคุณต้องการรวมเอาท์พุตทั้งสองนี้ไว้ในไฟล์เดียวกัน คุณก็สามารถทำได้เช่นกัน ในการดำเนินการนี้ คุณเพียงแค่เปลี่ยนเส้นทางเอาต์พุตทั้งหมดไปยังไฟล์เดียวกันโดยใช้คำสั่งต่อไปนี้

    dir test.exe 1> myoutput.txt 2>&1

    วิธีการทำงานของคำสั่งนี้:

    • เอาต์พุตมาตรฐานถูกนำไปยังไฟล์เอาต์พุตที่ระบุโดยเอาต์พุตหมายเลข 1
    • เอาต์พุตข้อผิดพลาดมาตรฐานที่ระบุโดยหมายเลข 2 ถูกเปลี่ยนเส้นทางไปยังไฟล์เอาต์พุตที่ระบุด้วยหมายเลข 1

    สิ่งนี้จะเพิ่มเอาต์พุตข้อผิดพลาดต่อท้ายเอาต์พุตมาตรฐาน

    เปลี่ยนเส้นทางเอาต์พุตจากบรรทัดคำสั่งของ Windows ไปยังไฟล์ข้อความ

    นี่เป็นวิธีที่มีประโยชน์ในการดูผลลัพธ์ทั้งหมดสำหรับคำสั่งใดๆ ในไฟล์เดียว

    ปิดเสียงมาตรฐานหรือสตรีมเอาต์พุตข้อผิดพลาด

    คุณยังสามารถปิดเอาต์พุตมาตรฐานหรือข้อผิดพลาดมาตรฐานโดยเปลี่ยนเส้นทางเอาต์พุตไปยัง NUL แทนไฟล์

    จากตัวอย่างข้างต้น หากคุณต้องการเพียงเอาต์พุตมาตรฐานและไม่มีข้อผิดพลาดมาตรฐาน คุณสามารถใช้คำสั่งต่อไปนี้:

    dir test.exe 1> myoutput.txt 2>nul

    ซึ่งจะส่งผลให้ไฟล์เอาต์พุตเดียวกันกับตัวอย่างแรกด้านบนที่คุณเปลี่ยนเส้นทางเฉพาะเอาต์พุตมาตรฐาน แต่ด้วยคำสั่งนี้ ข้อผิดพลาดจะไม่สะท้อนภายในคอนโซล มันจะไม่สร้างไฟล์บันทึกข้อผิดพลาดเช่นกัน

    สิ่งนี้มีประโยชน์หากคุณไม่สนใจข้อผิดพลาดใดๆ และไม่ต้องการให้กลายเป็นสิ่งรบกวน

    คุณสามารถดำเนินการคำสั่งเอาต์พุตเดียวกันด้านบนจากภายในไฟล์ BAT และเอาต์พุตจากบรรทัดนั้นจะไปที่ไฟล์เอาต์พุตที่คุณระบุ นี่เป็นวิธีที่มีประโยชน์ในการดูว่าคำสั่งในไฟล์ BAT มีข้อผิดพลาดหรือไม่เมื่อพยายามเรียกใช้