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