Toplu Komut Dosyası - Yorumlar

Oluşturulan komut dosyaları için yorum veya belge eklemek her zaman iyi bir uygulamadır. Bu, komut dosyalarının gerçekte ne yaptığını anlamak için komut dosyalarının bakımı için gereklidir.

Örneğin, yorum biçimi olmayan aşağıdaki kod parçasını düşünün. Aşağıdaki senaryoyu geliştirmemiş ortalama bir kişi senaryoyu anlamaya çalışırsa, o kişinin senaryonun gerçekte ne yaptığını anlaması çok zaman alır.

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

Rem İfadesini Kullanan Yorumlar

Toplu Komut Dosyasında yorum oluşturmanın iki yolu vardır; biri Rem komutu ile yapılır. Rem ifadesini izleyen herhangi bir metin yorum olarak değerlendirilecek ve çalıştırılmayacaktır. Bu ifadenin genel sözdizimi aşağıdadır.

Sözdizimi

Rem Remarks

burada 'Açıklamalar' eklenmesi gereken yorumlardır.

Aşağıdaki örnek, basit bir şekilde Rem komut kullanılabilir.

Misal

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

Çıktı

Yukarıdaki komut aşağıdaki çıktıyı üretir. Rem ifadesinin bulunduğu satırın çalıştırılmayacağını fark edeceksiniz.

Hello World

:: İfadesini Kullanan Yorumlar

Toplu Komut Dosyasında yorum oluşturmanın diğer yolu :: komutudur. :: ifadesini izleyen herhangi bir metin yorum olarak değerlendirilecek ve çalıştırılmayacaktır. Bu ifadenin genel sözdizimi aşağıdadır.

Sözdizimi

:: Remarks

burada 'Açıklamalar' eklenmesi gereken yorumdur.

Aşağıdaki örnek, "::" komutunun kullanımını gösterir.

Misal

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

Çıktı

Yukarıdaki komut aşağıdaki çıktıyı üretir. :: deyiminin bulunduğu satırın çalıştırılmayacağını fark edeceksiniz.

Hello World

Note - Çok fazla Rem satırınız varsa, bu kodu yavaşlatabilir, çünkü sonunda toplu iş dosyasındaki her kod satırının yürütülmesi gerekir.

Bu konunun başında gördüğümüz büyük senaryo örneğine bakalım ve ona dokümantasyon eklendiğinde nasıl göründüğüne bakalım.

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

Artık kodun, kodu geliştirmemiş kullanıcılar için daha anlaşılır hale geldiğini ve dolayısıyla daha kolay bakım yapılabildiğini görebilirsiniz.