Script de lote - comentários

É sempre uma boa prática adicionar comentários ou documentação para os scripts que são criados. Isso é necessário para a manutenção dos scripts para entender o que o script realmente faz.

Por exemplo, considere o seguinte trecho de código que não tem forma de comentários. Se qualquer pessoa comum que não desenvolveu o script a seguir tentar entendê-lo, demorará muito para essa pessoa entender o que o script realmente faz.

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

Comentários usando a declaração Rem

Existem duas maneiras de criar comentários no Batch Script; um é por meio do comando Rem. Qualquer texto após a instrução Rem será tratado como comentário e não será executado. A seguir está a sintaxe geral desta instrução.

Sintaxe

Rem Remarks

onde 'Observações' são os comentários que precisam ser adicionados.

O exemplo a seguir mostra uma maneira simples de Rem comando pode ser usado.

Exemplo

@echo off 
Rem This program just displays Hello World 
set message=Hello World 
echo %message%

Resultado

O comando acima produz a seguinte saída. Você notará que a linha com a instrução Rem não será executada.

Hello World

Comentários usando a :: Declaração

A outra maneira de criar comentários no Batch Script é por meio do comando ::. Qualquer texto que segue a instrução :: será tratado como comentário e não será executado. A seguir está a sintaxe geral desta instrução.

Sintaxe

:: Remarks

onde 'Observações' é o comentário que precisa ser adicionado.

O exemplo a seguir mostra o uso do comando "::".

Exemplo

@echo off 
:: This program just displays Hello World 
set message = Hello World 
echo %message%

Resultado

O comando acima produz a seguinte saída. Você notará que a linha com a instrução :: não será executada.

Hello World

Note - Se você tiver muitas linhas de Rem, pode tornar o código mais lento, porque no final cada linha de código no arquivo em lote ainda precisa ser executada.

Vamos dar uma olhada no exemplo do grande script que vimos no início deste tópico e ver como fica quando a documentação é adicionada a ele.

::===============================================================
:: 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

Agora você pode ver que o código se tornou mais compreensível para os usuários que não o desenvolveram e, portanto, é mais fácil de manter.