Batch (ngôn ngữ lập trình)
| Phần mở rộng tên file | .bat,.cmd,.btm |
|---|---|
| Kiểu phương tiện | application/bat, application/x-bat, application/x-msdos-program, text/plain |
| Kiểu định dạng | Kịch bản |
| Dùng để chứa | Kịch bản |
Batch là một ngôn ngữ lập trình được dựa trên các tập tin thực thi batch (*.bat, *.cmd,...) để chạy. Chúng sẽ được thực thi dưới dạng một cửa sổ Command Prompt để chạy những dòng lệnh. Batch cũng có thể rất nguy hiểm nếu sử dụng không đúng cách (xoá toàn bộ ổ cứng, làm tắt internet vĩnh viễn,...) thậm chí còn có thể làm hư cả hệ điều hành. Batch có thể được viết bằng các phần mềm chỉnh sửa văn bản đơn giản như Notepad, Sublime Text, v.v...
Lịch sử Batch (ngôn ngữ lập trình) Batch (ngôn ngữ lập trình)
Batch được giới thiệu cùng với hệ điều hành MS-DOS, với khả năng thực hiện nhiều câu lệnh hàng loạt thay vì chạy từng câu lệnh như trước đây.
Batch cho đến nay vẫn còn được sử dụng trên các hệ điều hành Mircosoft Windows, với nhiều cải tiến như khả năng thực hiện các phép tính, đọc dữ liệu từ bàn phím hay thay đổi màu sắc trên cửa sổ Command Prompt.
Cú pháp Batch (ngôn ngữ lập trình) Batch (ngôn ngữ lập trình)
Do một chương trình Batch là tập hợp các câu lệnh, nên cú pháp của nó rất đơn giản:
câu_lệnh_1 (các đối số)Trong Batch có một số câu lệnh đặc biệt, thường hay được sử dụng trong nhiều chương trình:
echo <on/off> Bật/tắt hiện thị câu lệnhecho.<...> In ra màn hìnhset <keyword> Tìm các biến bắt đầu bằng <keyword>set <varname>=<value> Thay đổi giá trị của biến <varname>set /p <varname>=<prompt> In ra màn hình <prompt> rồi đọc từ bàn phímset /a <varname>=... Thực hiện phép tính. VD: `set /a total=%a% + 12`call <programname> Gọi chương trình kháccall:<label> Gọi chương trình congoto <label> Nhảy tới vị trí:<label>Ví dụ Batch (ngôn ngữ lập trình) Batch (ngôn ngữ lập trình)
Muốn viết được chương trình Hello World, ta có thể sử dụng ví dụ đơn giản dưới đây:
@echo offclstitle Hello Worldclscolor 02 clsecho Hello world!Trong đó:
@echo off@: Làm cho câu lệnh không hiển thị ra màn hình (VD: "C:\> echo off" sẽ được ẩn đi trong dòng lệnh này)
echo off: Chuyển chế độ sang ẩn câu lệnh (tức là dấu "@" sẽ được thêm vào trước các câu lệnh)
clsLà câu lệnh xoá màn hình.
title Hello WorldLà câu lệnh dùng để hiển thị tên của cửa sổ Command Prompt. Trong trường hợp này, cửa sổ có tên là Hello World
color 02Là câu lệnh đổi màu chữ để tăng vẻ đẹp cho chương trình. Chữ thứ nhất chỉ định cho màu nền (0), chữ thứ hai chỉ định cho màu chữ (2). Chúng ta có thể thay thế số 2 bằng các màu khác:
+ 0 là đen (màu ngầm định của nền)
+ 1 là màu xanh dương
+ 2 là màu xanh lá cây
+ 3 là màu xanh mòng biển
+ 4 là màu đỏ
+ 5 là màu tím hồng
+ 6 là màu vàng
+ 7 là màu trắng (màu ngầm định của chữ)
+ 8 là màu xám
+ 9 là màu xanh dương sáng
+ A là màu xanh lá cây sáng
+ B là màu xanh mòng biển sáng
+ C là màu đỏ sáng
+ D là màu hồng sáng
+ E là màu vàng sáng
+ F là màu trắng sáng
echo Hello worldecho là câu lệnh viết lên màn hình. Trong ví dụ này ta viết lên màn hình dòng chữ Hello world.
Tuy nhiên, echo off và echo on thì không thể viết lên màn hình được.
Có thể sử dụng echo. để xuống dòng.
Đặt biến và nhập dữ liệu Batch (ngôn ngữ lập trình) Batch (ngôn ngữ lập trình)
Trong mọi ngôn ngữ lập trình, biến là không thể thiếu, Batch cũng không ngoại lệ. Cách để khai báo biến:
set <tên biến> = aset /a <tên biến> = bTrong đó:
a là giá trị của biến là số hoặc chuỗi.
b là giá trị của biến là số.
Ví dụ:
@echo offcolor 0set notnumber = Helloset /a number = 10echo %notnumber%echo This is %number%pauseexitSử dụng biến để tính toán
Bạn có thể sử dụng biến để tính các phép tính đơn giản. Tuy nhiên, điểm hạn chế là nó không hỗ trợ số thập phân.
Ví dụ:
rem Tính tổng 10 + 5set /a total=10 + 5rem Lấy phần dư của số (kết quả ra 1)set /a mod=10 %% 3rem Lưu ý: Trong Command Prompt, bạn phải sử dụng 1 dấu '%'rem Dấu ngoặc cũng có thể sử dụngset /a total=5 * (10 + 2)Sử dụng biến để cắt và thay thế chữ
Việc thay thế chữ (hoặc cắt chữ) cũng rất quan trọng.:
rem Cách sử dụng (cắt chữ):rem %tênbiến:~vịtríbắtđầu,sốkýtựcầncắt%rem VD: Cắt lấy 5 chữ cái cách chữ cái đầu 1 ký tự của biến:set data=Hello Worldset data=%data:~1,5%rem "ello "rem Cách sử dụng (thay thế):rem %tênbiến:chữcầnthaythế:chữthaythế%rem VD: Thay thế chữ Hello sang chữ World:set data=Hello Worldset data=%data:Hello=World%rem "World World"Điều đặc biệt là bạn có thể làm như vậy với biến số.
Đọc biến nhập từ bàn phím
Nếu bạn có dự định làm một phần mềm viết bằng Batch, thì bạn cũng có thể đọc dữ liệu từ bàn phím
rem Đọc dữ liệu từ bàn phím:rem set /p tênbiến="Các dòng chữ sẽ hiển thị ở đây:"set /p password="Type password: "rem "Type password: <dữ liệu từ bàn phím>"Tuy nhiên, việc đọc từ mật khẩu từ bàn phím không phải là lựa chọn tốt nhất để làm một chương trình khóa các tệp.
Một số từ khóa trong Batch
ver: Trả về phiên bản MS-DOS đang sử dụng
cd: Chuyển hướng thư mục đang làm việc
cls: Xóa màn hình MS-DOS
copy: Sao chép file
del: Xóa file
dir: Hiển thị nội dùng của một thư mục
echo: Hiển thị văn bản trên màn hình MS-DOS
exit: Thoát chương trình
md: Tạo một thư mục mởi vị trí hiện tại đang làm việc
pause: Ngăn không cho chương trình thoát và đợi cho tới khi bất kì phím nào trên bàn phím đucợ nhấn
Gọi tên một chương trình Batch khác Batch (ngôn ngữ lập trình) Batch (ngôn ngữ lập trình)
Nếu bạn có nhiều chương trình batch trong 1 thư mục, thì bạn cũng có thể gọi cái chương trình ấy ra mà không làm cho chương trình của bạn bị thoát.
Sử dụng bằng lệnh "call <tên chương trình> <các biến>"
Nó còn có thể gọi được tất cả các lệnh của batch nữa. (call echo Hello World)