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

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

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

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

Note - Если у вас слишком много строк 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

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