批處理指令碼 - 註釋



為建立的指令碼添加註釋或文件始終是一個好習慣。這對於維護指令碼以瞭解指令碼的實際作用是必需的。

例如,考慮以下沒有任何形式註釋的程式碼片段。如果任何未開發以下指令碼的普通使用者嘗試理解該指令碼,則該使用者需要花費大量時間才能理解指令碼的實際作用。

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

其中“備註”是要新增的註釋。

以下示例展示了Rem命令的簡單用法。

示例

@echo off 
Rem This program just displays Hello World 
set message=Hello World 
echo %message%

輸出

以上命令產生以下輸出。您會注意到包含 Rem 語句的行不會被執行。

Hello World

使用 :: 語句添加註釋

在批處理指令碼中建立註釋的另一種方法是透過 :: 命令。:: 語句後面的任何文字都將被視為註釋,並且不會被執行。以下是此語句的通用語法。

語法

:: Remarks

其中“備註”是要新增的註釋。

以下示例展示了“::”命令的用法。

示例

@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

您現在可以看到,對於未開發程式碼的使用者來說,程式碼變得更容易理解,因此更易於維護。

廣告