Всегда полезно добавлять комментарии или документацию для создаваемых скриптов. Это необходимо для обслуживания сценариев, чтобы понять, что на самом деле делает сценарий.
Например, рассмотрим следующий фрагмент кода, который не имеет формы комментариев. Если какой-либо обычный человек, который не разработал следующий сценарий, попытается понять сценарий, ему потребуется много времени, чтобы понять, что на самом деле делает сценарий.
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
Есть два способа создания комментариев в Batch Script; один через команду 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
Теперь вы можете видеть, что код стал более понятным для пользователей, которые не разработали код и, следовательно, стал более понятным.