Saltar al contenido

Script por lotes – Comentarios

septiembre 23, 2021

Siempre es una buena práctica agregar comentarios o documentación para los scripts que se crean. Esto es necesario para el mantenimiento de las secuencias de comandos para comprender lo que realmente hace la secuencia de comandos.

Por ejemplo, considere el siguiente fragmento de código que no tiene forma de comentarios. Si cualquier persona promedio que no haya 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 de Movimiento rápido del ojo se puede utilizar el comando.

Ejemplo

&commat;echo off 
Rem This program just displays Hello World 
set message=Hello World 
echo %message%

Producción

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 debe agregarse.

El siguiente ejemplo muestra el uso del comando «::».

Ejemplo

&commat;echo off 
:: This program just displays Hello World 
set message = Hello World 
echo %message%

Producción

El comando anterior produce la siguiente salida. Notará que la línea con la instrucción :: no se ejecutará.

Hello World

Nota – 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 lo han desarrollado y, por lo tanto, es más fácil de mantener.

close