Script batch - Commenti

È sempre buona norma aggiungere commenti o documentazione per gli script che vengono creati. Ciò è necessario per la manutenzione degli script per capire cosa fa effettivamente lo script.

Ad esempio, si consideri il seguente pezzo di codice che non ha forma di commenti. Se una persona media che non ha sviluppato il seguente script cerca di capire il copione, ci vorrà molto tempo prima che quella persona capisca cosa fa effettivamente il copione.

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

Commenti utilizzando l'istruzione Rem

Esistono due modi per creare commenti in Batch Script; uno è tramite il comando Rem. Qualsiasi testo che segue l'istruzione Rem verrà considerato come un commento e non verrà eseguito. Di seguito è riportata la sintassi generale di questa affermazione.

Sintassi

Rem Remarks

dove "Osservazioni" sono i commenti che devono essere aggiunti.

L'esempio seguente mostra un modo semplice per il Rem comando può essere utilizzato.

Esempio

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

Produzione

Il comando precedente produce il seguente output. Noterai che la riga con l'istruzione Rem non verrà eseguita.

Hello World

Commenti utilizzando l'istruzione ::

L'altro modo per creare commenti in Batch Script è tramite il comando ::. Qualsiasi testo che segue l'istruzione :: verrà considerato come un commento e non verrà eseguito. Di seguito è riportata la sintassi generale di questa affermazione.

Sintassi

:: Remarks

dove "Osservazioni" è il commento che deve essere aggiunto.

Il seguente esempio mostra l'utilizzo del comando "::".

Esempio

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

Produzione

Il comando precedente produce il seguente output. Noterai che la riga con l'istruzione :: non verrà eseguita.

Hello World

Note - Se hai troppe righe di Rem, potrebbe rallentare il codice, perché alla fine ogni riga di codice nel file batch deve ancora essere eseguita.

Diamo un'occhiata all'esempio dello script di grandi dimensioni che abbiamo visto all'inizio di questo argomento e vediamo come appare quando viene aggiunta la documentazione.

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

Ora puoi vedere che il codice è diventato più comprensibile per gli utenti che non hanno sviluppato il codice e quindi è più gestibile.