批處理註釋
爲創建的腳本添加註釋或文檔總是一個好習慣。 這是一個維護腳本用來理解腳本實際所做的事情所必需的註釋。
例如,考慮下面這段沒有註釋形式的代碼。 如果一個沒有任何註釋的腳本,普通人試圖理解腳本,那麼需要很多時間來理解腳本做些什麼工作。
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
使用Rem語句註釋
有兩種方法可以在批處理腳本中創建註釋; 一個是通過Rem
命令。 Rem
語句後的任何文本都將被視爲註釋,不會被執行。 以下是此聲明的一般語法。
語法
Rem Remarks
其中「Remarks」
是需要添加的註釋。
以下示例顯示了可以使用Rem
命令的簡單方法。
示例
@echo off
Rem This program just displays Hello World
set message=Hello World
echo %message%
以上命令產生以下輸出。注意:Rem
語句行不會被執行。
Hello World
註釋使用::聲明
在批處理腳本中創建註釋的另一種方法是通過::
命令。任何遵循::
語句的文本都將被視爲註釋,不會被執行。 以下是此聲明的一般語法。
語法
:: Remarks
其中「Remarks」
是需要添加的註釋。
以下示例顯示了可以使用Rem
命令的簡單方法。
示例
@echo off
:: This program just displays Hello World
set message=Hello World
echo %message%
以上命令產生以下輸出。 注意,具有::
語句的行將不會被執行。
Hello World
注 - 如果Rem
的行數太多,可能會使代碼變慢,因爲最後還是需要執行批處理文件中的每行代碼。
讓我們來看一下在本主題開始時看到的大腳本的例子,看看它在添加註釋文檔時的樣子。
::===============================================================
:: 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
現在可以看到,對於沒有開發代碼的用戶來說,代碼變得更加易於理解,因此更易於維護。