Учебники

Пакетный скрипт — Комментарии

Всегда полезно добавлять комментарии или документацию для создаваемых скриптов. Это необходимо для обслуживания сценариев, чтобы понять, что на самом деле делает сценарий.

Например, рассмотрим следующий фрагмент кода, который не имеет формы комментариев. Если какой-либо обычный человек, который не разработал следующий сценарий, попытается понять сценарий, ему потребуется много времени, чтобы понять, что на самом деле делает сценарий.

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

Теперь вы можете видеть, что код стал более понятным для пользователей, которые не разработали код и, следовательно, стал более понятным.