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