Script por lotes - Comentarios
Siempre es una buena práctica agregar comentarios o documentación para los scripts que se crean. Esto es necesario para el mantenimiento de los scripts para comprender qué hace realmente el script.
Por ejemplo, considere el siguiente fragmento de código que no tiene forma de comentarios. Si cualquier persona promedio que no ha desarrollado el siguiente guión intenta entender el guión, le tomaría mucho tiempo a esa persona entender lo que realmente hace el guión.
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
Comentarios usando la instrucción Rem
Hay dos formas de crear comentarios en Batch Script; uno es a través del comando Rem. Cualquier texto que siga a la instrucción Rem se tratará como comentario y no se ejecutará. A continuación se muestra la sintaxis general de esta declaración.
Sintaxis
Rem Remarks
donde 'Comentarios' son los comentarios que deben agregarse.
El siguiente ejemplo muestra una forma sencilla Rem se puede utilizar el comando.
Ejemplo
@echo off
Rem This program just displays Hello World
set message=Hello World
echo %message%
Salida
El comando anterior produce la siguiente salida. Notará que la línea con la instrucción Rem no se ejecutará.
Hello World
Comentarios usando la declaración ::
La otra forma de crear comentarios en Batch Script es mediante el comando ::. Cualquier texto que siga a la instrucción :: se tratará como comentario y no se ejecutará. A continuación se muestra la sintaxis general de esta declaración.
Sintaxis
:: Remarks
donde 'Comentarios' es el comentario que se debe agregar.
El siguiente ejemplo muestra el uso del comando "::".
Ejemplo
@echo off
:: This program just displays Hello World
set message = Hello World
echo %message%
Salida
El comando anterior produce la siguiente salida. Notará que la línea con la instrucción :: no se ejecutará.
Hello World
Note - Si tiene demasiadas líneas de Rem, podría ralentizar el código, porque al final cada línea de código en el archivo por lotes aún debe ejecutarse.
Veamos el ejemplo del script grande que vimos al principio de este tema y veamos cómo se ve cuando se le agrega documentación.
::===============================================================
:: 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
Ahora puede ver que el código se ha vuelto más comprensible para los usuarios que no han desarrollado el código y, por lo tanto, es más fácil de mantener.