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.