Herhangi bir programlama dilinde çalışırken yapacağınız en temel şey yazdığınız kodları yorum satırlarıyla açıklamak olacaktır. Çünkü daha sonradan hataları analiz ederken geri dönüp kontrol ettiğimizde o an sıcağı sıcağına yazdığımız kodun detaylarını biliyor olsanız bile hata analizi yaparken detayları unutabilirsiniz. Ne yaptığınız anlamaya çalışırken gereksiz bir zaman kaybı yaşarsınız. Bende batch script ile kodlama yaparken yaptığım her işlem için yorum satırı kullanmaya özen gösteriyorum. Yorum satırlarından kaçındığım zamanlarda hata analizi yaparken karmaşık bölümlerde yaptığım bazı ayarların hataları önlediğini unutarak değiştirip silebiliyorum. Bu tarz durumlarla karşılaşmamak için yorum satırlarından asla kaçınmamanızı tavsiye ederek batch script kodlama yaparken yorum satırlarını nasıl kullanacağınızı nelere dikkat edeceğinizi bir kaç örnekle göstereceğim.
CMD ve BAT dosyalarında yorum satırı olarak kullanılan komutlar;
"::" yorum satırını FOR döngüsü içinde ve yoğun Call parametrelerinin olduğu bölümlerde kullanmayınız. Bunların haricinde istediğiniz her yerde kullanabilirsiniz. FOR döngüsü içinde kullandığınız zaman batch script bunu başlık olarak algılayıp "Sistem belirtilen sürücüyü bulamıyor" hatasını komut ekranına yazdırabilir. Aşağıdaki görselde FOR döngüsü içinde kullandığım "::" satırı kaynaklı hatalar görünmektedir.
"REM" yorum satırını echo off parametresinden önce kullanmayınız. Çünkü bu girdileri komut ekranında göstercektir. REM yorum satırını yalnızca FOR döngüleri ve Call parametrelerinin yoğun olduğu bölümlerde kullanınız.
Ayrıca FOR döngüleri içinde "::" komutunun kullanımı çalışmanızın sebepsiz kapanmasına yol açabilir. Aşağıdaki
Örnek_1
'deki gibi yorum satırını kodladığımızda çalışma kapanacaktır. Ancak
Ornek_2
'deki gibi yorum satırını "REM" olarak kodladığımızda çalışma kapanmayacaktır.
Ornek_1
'de çalışmanın kapanmasının sebebi FOR döngüsünde son satıra "::" yorum satırı kullanmamızdan kaynaklıdır. For döngüsü dışında yer alan yani üst bölümdeki "::" yorum satırları herhangi bir sorun çıkarmamaktadır.
► Örnek_1;
:: Girdileri gizler
echo off
:: Türkçe karakterler için kullanılır
chcp 65001
:: For döngüleri içinde değişken kullanımı için gerekli
setlocal enabledelayedexpansion
:: Komut ekranını temizler
cls
FOR /F "tokens=*" %%a in ('Findstr /i "test" C:\Users\%username%\Desktop\Ornek.txt') do (
echo %%a
:: Masaüstünde yer alan Ornek.txt dosyası içinde "test" ifadelerini alacağız.
)
pause
exit
► Örnek_2;
:: Girdileri gizler
echo off
REM Türkçe karakterler için kullanılır
chcp 65001
REM For döngüleri içinde değişken kullanımı için gerekli
setlocal enabledelayedexpansion
REM Komut ekranını temizler
cls
FOR /F "tokens=*" %%a in ('Findstr /i "test" C:\Users\%username%\Desktop\Ornek.txt') do (
echo %%a
REM Masaüstünde yer alan Ornek.txt dosyası içinde "test" ifadelerini alacağız.
)
pause
exit