Skrypt wsadowy - komentarze

Dobrą praktyką jest zawsze dodawanie komentarzy lub dokumentacji do tworzonych skryptów. Jest to wymagane do konserwacji skryptów, aby zrozumieć, co faktycznie robi skrypt.

Weźmy na przykład pod uwagę następujący fragment kodu, który nie ma żadnej formy komentarzy. Jeśli jakakolwiek przeciętna osoba, która nie opracowała poniższego skryptu, spróbuje go zrozumieć, zrozumienie tego, co faktycznie robi skrypt, zajęłoby jej dużo czasu.

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

Komentarze przy użyciu instrukcji Rem

Istnieją dwa sposoby tworzenia komentarzy w skrypcie wsadowym; jeden jest za pomocą polecenia Rem. Jakikolwiek tekst następujący po instrukcji Rem będzie traktowany jako komentarz i nie zostanie wykonany. Poniżej znajduje się ogólna składnia tej instrukcji.

Składnia

Rem Remarks

gdzie „Uwagi” to komentarze, które należy dodać.

Poniższy przykład pokazuje prosty sposób, w jaki Rem można użyć polecenia.

Przykład

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

Wynik

Powyższe polecenie daje następujący wynik. Zauważysz, że wiersz z instrukcją Rem nie zostanie wykonany.

Hello World

Komentarze przy użyciu instrukcji ::

Innym sposobem tworzenia komentarzy w skrypcie wsadowym jest użycie polecenia ::. Każdy tekst następujący po instrukcji :: będzie traktowany jako komentarz i nie zostanie wykonany. Poniżej znajduje się ogólna składnia tej instrukcji.

Składnia

:: Remarks

gdzie „Uwagi” to komentarz, który należy dodać.

Poniższy przykład ilustruje użycie polecenia „::”.

Przykład

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

Wynik

Powyższe polecenie daje następujący wynik. Zauważysz, że wiersz z instrukcją :: nie zostanie wykonany.

Hello World

Note - Jeśli masz zbyt wiele wierszy Rem, może to spowolnić kod, ponieważ na końcu każda linia kodu w pliku wsadowym nadal musi zostać wykonana.

Spójrzmy na przykład dużego skryptu, który widzieliśmy na początku tego tematu, i zobaczmy, jak wygląda po dodaniu do niego dokumentacji.

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

Możesz teraz zobaczyć, że kod stał się bardziej zrozumiały dla użytkowników, którzy go nie opracowali, a zatem jest łatwiejszy w utrzymaniu.