Tập lệnh hàng loạt - Nhận xét
Luôn luôn là một phương pháp hay để thêm nhận xét hoặc tài liệu cho các tập lệnh được tạo. Điều này là cần thiết để bảo trì các tập lệnh để hiểu những gì tập lệnh thực sự làm.
Ví dụ: hãy xem xét đoạn mã sau đây không có hình thức nhận xét. Nếu bất kỳ người bình thường nào chưa phát triển kịch bản sau cố gắng hiểu kịch bản, thì người đó sẽ mất rất nhiều thời gian để hiểu kịch bản thực sự làm gì.
ECHO OFF
IF NOT "%OS%"=="Windows_NT" GOTO Syntax
ECHO.%* | FIND "?" >NUL
IF NOT ERRORLEVEL 1 GOTO Syntax
IF NOT [%2]==[] GOTO Syntax
SETLOCAL
SET WSS=
IF NOT [%1]==[] FOR /F "tokens = 1 delims = \ " %%A IN ('ECHO.%~1') DO SET WSS = %%A
FOR /F "tokens = 1 delims = \ " %%a IN ('NET VIEW ^| FIND /I "\\%WSS%"') DO FOR /F
"tokens = 1 delims = " %%A IN ('NBTSTAT -a %%a ^| FIND /I /V "%%a" ^| FIND "<03>"')
DO ECHO.%%a %%A
ENDLOCAL
GOTO:EOF
ECHO Display logged on users and their workstations.
ECHO Usage: ACTUSR [ filter ]
IF "%OS%"=="Windows_NT" ECHO Where: filter is the first part
of the computer name^(s^) to be displayed
Nhận xét sử dụng câu lệnh Rem
Có hai cách để tạo nhận xét trong Batch Script; một là thông qua lệnh Rem. Bất kỳ văn bản nào theo sau câu lệnh Rem sẽ được coi là bình luận và sẽ không được thực thi. Sau đây là cú pháp chung của câu lệnh này.
Cú pháp
Rem Remarks
trong đó 'Nhận xét' là nhận xét cần được thêm vào.
Ví dụ sau đây cho thấy một cách đơn giản Rem lệnh có thể được sử dụng.
Thí dụ
@echo off
Rem This program just displays Hello World
set message=Hello World
echo %message%
Đầu ra
Lệnh trên tạo ra kết quả sau. Bạn sẽ nhận thấy rằng dòng có câu lệnh Rem sẽ không được thực hiện.
Hello World
Nhận xét bằng cách sử dụng :: Tuyên bố
Một cách khác để tạo nhận xét trong Batch Script là thông qua lệnh ::. Bất kỳ văn bản nào theo sau câu lệnh :: sẽ được coi là bình luận và sẽ không được thực thi. Sau đây là cú pháp chung của câu lệnh này.
Cú pháp
:: Remarks
trong đó 'Nhận xét' là nhận xét cần được thêm vào.
Ví dụ sau đây cho thấy cách sử dụng của lệnh "::".
Thí dụ
@echo off
:: This program just displays Hello World
set message = Hello World
echo %message%
Đầu ra
Lệnh trên tạo ra kết quả sau. Bạn sẽ nhận thấy rằng dòng có câu lệnh :: sẽ không được thực thi.
Hello World
Note - Nếu bạn có quá nhiều dòng Rem, nó có thể làm chậm mã, vì cuối cùng mỗi dòng mã trong tệp lô vẫn cần được thực thi.
Hãy xem ví dụ về script lớn mà chúng ta đã thấy ở đầu chủ đề này và xem nó trông như thế nào khi tài liệu được thêm vào đó.
::===============================================================
:: The below example is used to find computer and logged on users
::
::===============================================================
ECHO OFF
:: Windows version check
IF NOT "%OS%"=="Windows_NT" GOTO Syntax
ECHO.%* | FIND "?" >NUL
:: Command line parameter check
IF NOT ERRORLEVEL 1 GOTO Syntax
IF NOT [%2]==[] GOTO Syntax
:: Keep variable local
SETLOCAL
:: Initialize variable
SET WSS=
:: Parse command line parameter
IF NOT [%1]==[] FOR /F "tokens = 1 delims = \ " %%A IN ('ECHO.%~1') DO SET WSS = %%A
:: Use NET VIEW and NBTSTAT to find computers and logged on users
FOR /F "tokens = 1 delims = \ " %%a IN ('NET VIEW ^| FIND /I "\\%WSS%"') DO FOR /F
"tokens = 1 delims = " %%A IN ('NBTSTAT -a %%a ^| FIND /I /V "%%a" ^| FIND
"<03>"') DO ECHO.%%a %%A
:: Done
ENDLOCAL
GOTO:EOF
:Syntax
ECHO Display logged on users and their workstations.
ECHO Usage: ACTUSR [ filter ]
IF "%OS%"=="Windows_NT" ECHO Where: filter is the first part of the
computer name^(s^) to be displayed
Bây giờ bạn có thể thấy rằng mã đã trở nên dễ hiểu hơn đối với những người dùng chưa phát triển mã và do đó dễ bảo trì hơn.