Batch Script - Đầu vào / Đầu ra
Có ba “tệp” phổ biến để nhập bàn phím, in văn bản trên màn hình và lỗi in trên màn hình. Tệp "Standard In", được gọi làstdin, chứa đầu vào của chương trình / tập lệnh. Tệp "Chuẩn ra", được gọi làstdout, được sử dụng để ghi đầu ra để hiển thị trên màn hình. Cuối cùng, tệp “Lỗi chuẩn”, được gọi làstderr, chứa bất kỳ thông báo lỗi nào để hiển thị trên màn hình.
Mỗi trong số ba tệp tiêu chuẩn này, còn được gọi là các luồng tiêu chuẩn, được tham chiếu bằng cách sử dụng các số 0, 1 và 2. Stdin là tệp 0, stdout là tệp 1 và stderr là tệp 2.
Chuyển hướng đầu ra (Stdout và Stderr)
Một thực tế phổ biến trong các tệp hàng loạt là gửi đầu ra của một chương trình đến tệp nhật ký. Toán tử> gửi hoặc chuyển hướng, stdout hoặc stderr đến một tệp khác. Ví dụ sau đây cho thấy cách này có thể được thực hiện.
Dir C:\ > list.txt
Trong ví dụ trên, stdout của lệnh Dir C: \ được chuyển hướng đến tệp list.txt.
Nếu bạn thêm số 2 vào bộ lọc chuyển hướng, thì nó sẽ chuyển hướng stderr vào tệp danh sách.txt.
Dir C:\ 2> list.txt
Người ta thậm chí có thể kết hợp stdout và stderrluồng sử dụng số tệp và tiền tố '&'. Sau đây là một ví dụ.
DIR C:\ > lists.txt 2>&1
Ngăn chặn đầu ra chương trình
Tệp giả NUL được sử dụng để loại bỏ bất kỳ đầu ra nào khỏi chương trình. Ví dụ sau đây cho thấy rằng đầu ra của lệnh DIR bị loại bỏ bằng cách gửi đầu ra tới NUL.
Dir C:\ > NUL
Stdin
Để làm việc với Stdin, bạn phải sử dụng một giải pháp thay thế để đạt được điều này. Điều này có thể được thực hiện bằng cách chuyển hướng stdin của chính dấu nhắc lệnh, được gọi là CON.
Ví dụ sau đây cho thấy cách bạn có thể chuyển hướng đầu ra đến một tệp có tên là danh sách.txt. Sau khi bạn thực hiện lệnh dưới đây, dấu nhắc lệnh sẽ lấy tất cả dữ liệu đầu vào do người dùng nhập cho đến khi nhận được ký tự EOF. Sau đó, nó sẽ gửi tất cả dữ liệu đầu vào đến tệp danh sách.txt.
TYPE CON > lists.txt