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.