为创建的脚本添加注释或文档始终是一个好习惯,这是维护脚本以了解脚本实际功能所必需的。
如,考虑下面没有注释形式的代码,如果没有编写以下脚本的普通人试图理解该脚本,则该人将花费大量时间来理解该脚本的实际作用。
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 Learnfk set message=Hello Learnfk echo %message%
上面的命令产生以下输出。您会注意到,不会执行带有Rem语句的行。
Hello Learnfk
::注释
在批处理脚本中创建注释的另一种方法是通过::命令, ::语句之后的任何文本都将被视为注释,并且将不会执行,以下是此语句的一般语法。
:: Remarks
"Remarks"是需要添加的评论。
以下示例显示了使用Rem命令的简单方法。
@echo off :: This program just displays Hello Learnfk set message = Hello Learnfk echo %message%
上面的命令产生以下输出。您会注意到带有::语句的行将不会执行。
Hello Learnfk
注意-如果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
现在您可以看到,对于尚未开发代码的用户而言,代码变得更加易于理解,因此更加易于维护。
参考链接
https://www.learnfk.com/batch-script/batch-script-comments.html
标签:教程,GOTO,批处理,无涯,ECHO,%%,Rem,Syntax,FIND From: https://blog.51cto.com/u_14033984/8193357