Batch Script - อินพุต / เอาต์พุต

มี "ไฟล์" สากลสามแบบสำหรับการป้อนข้อมูลด้วยแป้นพิมพ์การพิมพ์ข้อความบนหน้าจอและข้อผิดพลาดในการพิมพ์บนหน้าจอ ไฟล์“ Standard In” หรือที่เรียกว่าstdinมีอินพุตไปยังโปรแกรม / สคริปต์ ไฟล์“ Standard Out” หรือที่เรียกว่าstdoutใช้ในการเขียนผลลัพธ์เพื่อแสดงบนหน้าจอ สุดท้ายไฟล์“ Standard Err” หรือที่เรียกว่าstderrมีข้อความแสดงข้อผิดพลาดที่แสดงบนหน้าจอ

ไฟล์มาตรฐานทั้งสามไฟล์นี้หรือที่เรียกว่าสตรีมมาตรฐานอ้างอิงโดยใช้หมายเลข 0, 1 และ 2 Stdin คือไฟล์ 0, stdout คือไฟล์ 1 และ stderr คือไฟล์ 2

การเปลี่ยนเส้นทางเอาต์พุต (Stdout และ Stderr)

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

Dir C:\ > list.txt

ในตัวอย่างข้างต้นไฟล์ stdout ของคำสั่ง Dir C: \ ถูกเปลี่ยนเส้นทางไปยังไฟล์ list.txt

หากคุณต่อท้ายหมายเลข 2 เข้ากับตัวกรองการเปลี่ยนเส้นทางระบบจะเปลี่ยนเส้นทางไฟล์ stderr ไปยังไฟล์ lists.txt

Dir C:\ 2> list.txt

หนึ่งสามารถรวมไฟล์ stdout และ stderrสตรีมโดยใช้หมายเลขไฟล์และคำนำหน้า "&" ต่อไปนี้เป็นตัวอย่าง

DIR C:\ > lists.txt 2>&1

การระงับเอาต์พุตของโปรแกรม

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

Dir C:\ > NUL

Stdin

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

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

TYPE CON > lists.txt