为创建的脚本添加注释或文档始终是一个好习惯.这是维护脚本以了解脚本实际执行的操作所必需的.
例如,请考虑以下没有注释形式的代码.如果任何没有开发以下脚本的普通人试图理解该脚本,那么该人需要花费大量时间来理解该脚本实际上做了什么.
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 Remarks
其中'备注'是需要添加的注释.
以下示例显示了一种简单的方法 Rem 命令可以使用.
@echo off Rem This program just displays Hello World set message=Hello World echo %message%
上面的命令产生以下输出.您会注意到不会执行带有Rem语句的行.
Hello World
在Batch Script中创建注释的另一种方法是通过::命令.在::语句后面的任何文本都将被视为注释,不会被执行.以下是此语句的一般语法.
:: 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
现在,您可以看到代码对于未开发代码且因此更易于维护的用户而言更易理解.