Batch Script - Input / Output (tiếng Việt)
Xin chào các bạn future programmers! Hôm nay, chúng ta sẽ khám phá thế giới thú vị của Batch scripting, tập trung vào các thao tác đầu vào và đầu ra. Là giáo viên máy tính hàng xóm thân thiện của bạn, tôi rất vui mừng được hướng dẫn bạn trong hành trình này. Đừng lo lắng nếu bạn chưa bao giờ viết một dòng mã trước đây - chúng ta sẽ bắt đầu từ cơ bản và dần dần nâng cao. Vậy, hãy lấy một ly đồ uống yêu thích của bạn, và chúng ta cùng bắt đầu!
Hiểu về Đầu vào và Đầu ra trong Batch Scripts
Trước khi chúng ta đi vào chi tiết, hãy nói về đầu vào và đầu ra trong ngữ cảnh của Batch scripts.
- Đầu vào là thông tin mà bạn đưa vào script của mình. Nó giống như cung cấp dữ liệu cho chương trình của bạn.
- Đầu ra là những gì script của bạn tạo ra hoặc hiển thị. Nó là kết quả của công việc của script.
Hãy tưởng tượng như một căn bếp: đầu vào là nguyên liệu bạn sử dụng, và đầu ra là bữa ăn ngon lành bạn tạo ra!
Đầu vào Cơ bản: Lệnh SET /P
Hãy bắt đầu với cách phổ biến nhất để lấy đầu vào trong Batch scripts: lệnh SET /P. Lệnh này cho phép chúng ta yêu cầu người dùng nhập liệu và lưu trữ nó trong một biến.
@echo off
SET /P name=What's your name?
echo Hello, %name%! Welcome to the world of Batch scripting!
pause
Trong ví dụ này:
-
@echo off
ngăn không cho các lệnh hiển thị trên màn hình. -
SET /P name=What's your name?
yêu cầu người dùng nhập tên và lưu trữ nó trong biếnname
. -
echo Hello, %name%!
hiển thị lời chào sử dụng tên đã nhập. -
pause
giữ cửa sổ mở để bạn có thể thấy kết quả.
Hãy thử chạy script này. Nó giống như bạn đang có một cuộc trò chuyện nhỏ với máy tính của bạn!
Đầu ra Cơ bản: Lệnh ECHO
Chúng ta đã thấy lệnh ECHO trong hành động. Nó là cách chính để hiển thị đầu ra trong Batch scripts. Hãy khám phá nó một chút thêm:
@echo off
echo This is a simple output.
echo.
echo This line has a blank line above it.
echo "Quotes" are displayed as is.
echo.
echo Current date: %date%
echo Current time: %time%
pause
Đây là những gì đang xảy ra:
-
echo.
in ra một dòng trống. - Chúng ta có thể sử dụng ECHO để hiển thị văn bản, biến và thậm chí là thông tin hệ thống như ngày và giờ.
Chuyển hướng Đầu ra (Stdout và Stderr)
Bây giờ, hãy nói về việc chuyển hướng đầu ra. Trong Batch scripting, chúng ta có hai loại đầu ra chính:
- Đầu ra Стандартный (stdout): Đầu ra bình thường của một lệnh.
- Đầu ra Lỗi (stderr): Thông báo lỗi hoặc đầu ra chẩn đoán.
Chúng ta có thể chuyển hướng các đầu ra này vào các tệp sử dụng các toán tử >
và >>
.
Chuyển hướng Đầu ra Стандартный
@echo off
echo This will be saved to a file > output.txt
echo This will be appended to the file >> output.txt
type output.txt
pause
Trong script này:
-
>
tạo (hoặc ghi đè) một tệp và ghi đầu ra vào nó. -
>>
thêm đầu ra vào tệp hiện có (hoặc tạo nó nếu không tồn tại). -
type output.txt
hiển thị nội dung của tệp.
Chuyển hướng Đầu ra Lỗi
Để chuyển hướng thông báo lỗi, chúng ta sử dụng 2>
thay vì chỉ >
.
@echo off
dir nonexistent_folder 2> error.txt
type error.txt
pause
Script này cố gắng liệt kê một thư mục không tồn tại và chuyển hướng thông báo lỗi vào một tệp.
Chuyển hướng Cả Stdout và Stderr
Chúng ta có thể chuyển hướng cả hai loại đầu ra vào cùng một tệp:
@echo off
dir 2>&1 > output.txt
type output.txt
pause
Ở đây, 2>&1
có nghĩa là "chuyển hướng stderr vào cùng nơi stdout".
SUPPRESSING Program Output
Đôi khi, bạn có thể muốn chạy một lệnh mà không hiển thị đầu ra của nó. Chúng ta có thể làm điều này bằng cách chuyển hướng đầu ra vào một thiết bị đặc biệt gọi là NUL.
@echo off
echo This will be displayed
echo This will not be displayed > NUL
dir > NUL
echo The directory listing was suppressed
pause
Trong script này, đầu ra của lệnh thứ hai và lệnh DIR bị 抑制.
Kỹ thuật Đầu vào/Đầu ra Cấp cao
Bây giờ chúng ta đã bao gồm các kỹ thuật cơ bản, hãy xem xét một số kỹ thuật cao cấp hơn.
Sử dụng CHOICE để Lấy Đầu vào của Người dùng
Lệnh CHOICE cung cấp một cách cấu trúc hơn để lấy đầu vào của người dùng:
@echo off
echo Do you like programming?
choice /c YN /m "Enter Y for Yes or N for No"
if errorlevel 2 goto No
if errorlevel 1 goto Yes
:Yes
echo Great! Let's learn more!
goto End
:No
echo Don't worry, you will love it soon!
:End
pause
Script này:
- Đưa ra một câu hỏi có hoặc không cho người dùng.
- Sử dụng
/c YN
để chỉ định các lựa chọn hợp lệ (Y hoặc N). - Sử dụng
/m
để hiển thị một thông điệp tùy chỉnh. - Sử dụng
if errorlevel
để kiểm tra lựa chọn của người dùng và nhảy đến nhãn tương ứng.
Đọc từ một Tệp
Chúng ta cũng có thể đọc đầu vào từ một tệp:
@echo off
for /f "delims=" %%a in (input.txt) do (
echo Line read: %%a
)
pause
Script này đọc mỗi dòng từ input.txt
và hiển thị nó.
Ghi vào Nhiều Tệp
Hãy tạo một script ghi vào nhiều tệp:
@echo off
echo File 1 Content > file1.txt
echo File 2 Content > file2.txt
echo File 3 Content > file3.txt
echo Files created successfully!
pause
Điều này tạo ra ba tệp riêng biệt với nội dung khác nhau.
Tóm tắt các Phương pháp Đầu vào/Đầu ra
Hãy tóm tắt các phương pháp đầu vào/đầu ra chúng ta đã học trong bảng handy:
Phương pháp | Mô tả | Ví dụ |
---|---|---|
SET /P | Lấy đầu vào của người dùng | SET /P name=Enter name: |
ECHO | Hiển thị đầu ra | echo Hello, World! |
> | Chuyển hướng đầu ra vào tệp | echo Text > file.txt |
>> | Thêm đầu ra vào tệp | echo More text >> file.txt |
2> | Chuyển hướng đầu ra lỗi | command 2> error.txt |
2>&1 | Chuyển hướng cả stdout và stderr | command > output.txt 2>&1 |
NUL | 抑制 đầu ra | command > NUL |
CHOICE | Đầu vào của người dùng cấu trúc | choice /c YN /m "Yes or No?" |
FOR /F | Đọc từ tệp | for /f "delims=" %%a in (file.txt) do ... |
Và thế là xong, các bạn! Chúng ta đã cùng nhau hành trình qua thế giới đầu vào và đầu ra của Batch script. Nhớ rằng, chìa khóa để thành thạo các khái niệm này là thực hành. Hãy thử viết các script của riêng bạn, thử nghiệm với các lệnh khác nhau, và đừng sợ hãi khi mắc lỗi - đó là cách chúng ta học hỏi!
Như giáo viên máy tính cũ của bạn luôn nói, "Trong lập trình, mỗi lỗi chỉ là một cơ hội học tập mới trong trang phục." Vậy hãy tiến lên, viết các script Batch của bạn, và hy vọng rằng đầu ra của bạn luôn như mong đợi!
Credits: Image by storyset