Có một số cách để bình luận trong một tệp bó
1) Sử dụng rem
Đây là cách chính thức. Nó dường như mất nhiều thời gian để thực thi hơn ::
, mặc dù nó dường như dừng phân tích cú pháp sớm, trước khi các dấu mũ được xử lý. Phần trăm mở rộng xảy ra trước khi rem và ::
được xác định, do đó phần trăm sử dụng không chính xác tức là %~
sẽ gây ra lỗi nếu phần trăm có mặt. An toàn để sử dụng bất cứ nơi nào trong khối mã.
2) Sử dụng nhãn :
, ::
hoặc :;
vv
Vì :: comment
, ': bình luận' là tên nhãn không hợp lệ vì nó bắt đầu bằng ký tự không hợp lệ. Mặc dù vậy, sử dụng dấu hai chấm ở giữa nhãn là được. Nếu một không gian bắt đầu vào lúc bắt đầu của nhãn, nó được lấy ra : label
trở thành :label
. Nếu một khoảng trắng hoặc dấu hai chấm xuất hiện ở giữa nhãn, phần còn lại của tên không được hiểu nghĩa là nếu có hai nhãn :f:oo
và :f rr
cả hai sẽ được hiểu là :f
và chỉ nhãn được xác định sau trong tệp sẽ được nhảy tới. Phần còn lại của nhãn hiệu quả là một bình luận. Có nhiều lựa chọn thay thế ::
, được liệt kê ở đây . Bạn không bao giờ có thể goto
hoặc call
một ::foo
nhãn hiệu. goto :foo
và goto ::foo
sẽ không hoạt động.
Chúng hoạt động tốt bên ngoài các khối mã nhưng sau một nhãn trong khối mã, không hợp lệ hay không, phải có một dòng lệnh hợp lệ. :: comment
thực sự là một lệnh hợp lệ khác. Nó diễn giải nó như một lệnh và không phải là nhãn; lệnh đã được ưu tiên. Đó là lệnh để cd vào ::
âm lượng, sẽ hoạt động nếu bạn đã thực thi subst :: C:\
, nếu không bạn sẽ không thể tìm thấy lỗi âm lượng. Đó là lý do tại sao :;
tốt hơn bởi vì nó không thể được hiểu theo cách này, và do đó được hiểu là một nhãn thay thế, phục vụ như là lệnh hợp lệ. Đây không phải là đệ quy, tức là nhãn tiếp theo không cần lệnh sau nó. Đó là lý do tại sao họ đến trong twos.
Bạn cần cung cấp một lệnh hợp lệ sau nhãn, ví dụ echo something
. Một nhãn trong một khối mã phải đi kèm với ít nhất một lệnh hợp lệ, vì vậy các dòng đi theo cặp hai. Bạn sẽ gặp một )
lỗi không mong muốn nếu có dấu cách hoặc dấu ngoặc đơn đóng trên dòng tiếp theo. Nếu có khoảng trắng giữa hai ::
dòng, bạn sẽ gặp lỗi cú pháp không hợp lệ.
Bạn cũng có thể sử dụng toán tử dấu mũ trong ::
nhận xét như vậy:
@echo off
echo hello
(
:;(^
this^
is^
a^
comment^
)
:;
)
:;^
this^
is^
a^
comment
:;
)
Nhưng bạn cần dấu vết :;
cho lý do đã nêu ở trên.
@echo off
(
echo hello
:;
:; comment
:; comment
:;
)
echo hello
Nó là tốt miễn là có một số chẵn. Đây chắc chắn là cách tốt nhất để bình luận - với 4 dòng và :;
. Với :;
bạn, không có bất kỳ lỗi nào cần phải được loại bỏ bằng cách sử dụng 2> nul
hoặc subst :: C:\
. Bạn có thể sử dụng subst :: C:\
để làm cho âm lượng không tìm thấy lỗi biến mất nhưng điều đó có nghĩa là bạn cũng sẽ phải đặt C: vào mã để ngăn thư mục làm việc của bạn trở thành ::\
.
Để bình luận ở cuối dòng bạn có thể làm
command &::
hoặc command & rem comment
, nhưng vẫn phải có một số chẵn, như vậy:
@echo off
(
echo hello & :;yes
echo hello & :;yes
:;
)
echo hello
Dòng đầu tiên echo hello & :;yes
có một lệnh hợp lệ trên dòng tiếp theo nhưng dòng thứ hai & :;yes
thì không, vì vậy nó cần một lệnh tức là :;
.
3) Sử dụng biến môi trường không hợp lệ
%= comment =%
. Trong một tệp bó, các biến môi trường không được xác định sẽ bị xóa khỏi tập lệnh. Điều này làm cho nó có thể sử dụng chúng ở cuối dòng mà không cần sử dụng &
. Nó là tùy chỉnh để sử dụng một biến môi trường không hợp lệ, tức là một biến có chứa dấu bằng. Các giá trị bằng không được yêu cầu nhưng làm cho nó trông đối xứng. Ngoài ra, tên biến bắt đầu bằng "=" được dành riêng cho các biến động không có giấy tờ. Các biến động đó không bao giờ kết thúc bằng "=", do đó, bằng cách sử dụng "=" ở cả đầu và cuối của nhận xét, không có khả năng xảy ra xung đột tên. Nhận xét không thể chứa %
hoặc :
.
@echo off
echo This is an example of an %= Inline Comment =% in the middle of a line.
4) Như một lệnh, chuyển hướng stderr đến nul
@echo off
(
echo hello
;this is a comment 2> nul
;this is another comment 2> nul
)
5) Ở cuối tập tin, mọi thứ sau dấu ngoặc đơn không được tiết lộ là một nhận xét
@echo off
(
echo hello
)
(this is a comment
this is a comment
this is a comment