Batch (ngôn ngữ lập trình)

Bách khoa toàn thư mở Wikipedia
Jump to navigation Jump to search
Tập tin Batch
Phần mở rộng tên file .bat,.cmd,.btm
Internet media type 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 tiêu biểu sau:

  • Windows Notepad
  • Notepad++
  • Phần mềm chỉnh sửa văn bản .txt đơn giản

Ví dụ đơn giản Hello World[sửa | sửa mã nguồn]

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:

1 @echo off
2 cls
3 title Hello World
4 cls
5 color 02 
6 cls
7 echo Hello world!

Trong đó:

1 @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)

1 cls

Là câu lệnh xoá màn hình.

1 title Hello World

Là 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

1 color 02

Là 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

1 echo Hello world

echo 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 offecho 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[sửa | sửa mã nguồn]

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:

1 set <tên biến> = a
2 set /a <tên biến> = b

Trong đó:

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ụ:

1 @echo off
2 color 0
3 set notnumber = Hello
4 set /a number = 10
5 echo %notnumber%
6 echo This is %number%
7 pause
8 exit

Sử dụng biến để tính toán[sửa | sửa mã nguồ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ụ:

1 rem Tính tổng 10 + 5
2 set /a total=10 + 5
3 
4 rem Lấy phần dư của số (kết quả ra 1)
5 set /a mod=10 %% 3
6 rem Lưu ý: Trong Command Prompt, bạn phải sử dụng 1 dấu '%'
7 
8 rem Dấu ngoặc cũng có thể sử dụng
9 set /a total=5 * (10 + 2)

Sử dụng biến để cắt và thay thế chữ[sửa | sửa mã nguồn]

Việc thay thế chữ (hoặc cắt chữ) cũng rất quan trọng.:

 1 rem Cách sử dụng (cắt chữ):
 2 rem %tênbiến:~vịtríbắtđầu,sốkýtựcầncắt%
 3 rem VD: Cắt lấy 5 chữ cái cách chữ cái đầu 1 ký tự của biến:
 4 set data=Hello World
 5 set data=%data:~1,5%
 6 rem "ello "
 7 
 8 rem Cách sử dụng (thay thế):
 9 rem %tênbiến:chữcầnthaythế:chữthaythế%
10 rem VD: Thay thế chữ Hello sang chữ World:
11 set data=Hello World
12 set data=%data:Hello=World%
13 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[sửa | sửa mã nguồn]

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

1 rem Đọc dữ liệu từ bàn phím:
2 rem set /p tênbiến="Các dòng chữ sẽ hiển thị ở đây:"
3 set /p password="Type password: "
4 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.

Gọi tên một chương trình Batch khác[sửa | sửa mã nguồn]

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)