ileri batch komutları

İleri batch Programlama:
Hazırlayan: Zx8

Batch dosyaları MS-DOS işletim sisteminin “yığın” dosyalarıdır. İçerisindeki komutları sırası ile icra ederler. Ama bundan başka pek bilinmeyen hünerleri de vardır. Çoğu bilgisayar kullanıcısı bunları bilmez. Buyrun bakalım şu komutları inceleyelim.

REM Komutu:
Bu komut kendinden sonra gelen dizeyi bilgisayarın gözardı etmesini sağlar. REM komutundan sonra program ile ilgili not düşebileceğiniz gibi bazı komutları devre dışı bırakmak için de kullanabilirsiniz. REM yerine (;) kullanımı yanlıştır. (;) Config.sys dosyasında kullanılır.
Örnek:

REM Bu programla bilgisayara diskettekileri transfer eder.
Copy a:\*.* c:\yedek
c:
cdREM md disket”1″
REM Yukarıdaki komut ile programcı hatasını bulana kadar başındaki REM nedeni
REM devre dışı bırakılmıştır.

( Hatanın nedeni (“) işaretleridir. Bu işaretler bir dosya veya dizin adı için geçersizdir.)

PAUSE Komutu:
Programın herhangi bir tuşa basılıncaya kadar durmasını sağlar. Bu arada ekranda “Press any key to continue” (Devam etmek için herhangi bir tuşa basın.) mesajı görüntülenir. Eğer bu mesajın gözükmemesi isteniyorsa PAUSE > NUL Şekli ile kullanılmalıdır.

ECHO Komutu:
Kendisinden sonra gelen ifadeyi ekrana yazar. Tıpkı Qbasic dilindeki PRINT komutu gibi. Echo off ifadesi satırların işlem görürken ekranda gözükmemelerini sağlar. Echo on ifadesi durumu durumu tekrar görünür hale getirir. Komut satırlarının görünmemesini sağlamanın bir başka yolu ise başlarına @ işareti koymaktır.
Örnek:
@ECHO OFF
REM Sabit Disk Bakım programı
ECHO Geçici dosyalar siliniyor…
DEL c:\windows\temp\*.*
ECHO Bakım programı şimdi Scandisk i çalıştıracak.
ECHO.
ECHO Devam etmek için bir tuşa basın…
PAUSE > NUL
ECHO ON
C:\windows\command\scandisk.exe
@ECHO Bakım işlemi tamamlandı.

“ECHO.” İfadesi boş bir satır oluşturmaya yarar. ECHO ifadesinin yalnız kullanımı o andaki Echo ‘nun statüsünü (on veya off şeklinde) gösterir.

CALL Komutu:
Bir batch dosya içinden başka bir batch dosya çalıştırmaya yarar. Ne gerek var demeyin. Aksi taktirde bilgisayar tekrar ilk çalıştırılan batch dosyaya dönmez.
Örnek:

REM Kurulum başlıyor.
@ECHO OFF
ECHO Kurulum başlıyor..
ECHO İlk dosya işleme alınıyor.
CALL kurulum1.bat
ECHO İkinci dosya işleme alınıyor.
kurulum2.bat
ECHO Üçüncü dosya kuruluma alınıyor..
CALL kurulum3.bat
ECHO Kurulum bitti…

Bu şekilde bir yığın dosyası programcısını hüsrana uğratacaktır. Çünkü kurulum2.bat dosyası bir Call komutu ile çağrılmadığı için bu dosyadan geri dönemez ve “Echo Üçüncü dosya kuruluma alınıyor..” satırında itibaren oluşan komutlar bir başka değişle “haybeye” gider.

GOTO Komutu:
Bir batch dosyada bir noktadan bir başka noktaya (etikete) dallandırılmayı sağlar. Etiket isminden önce (:) işareti kullanılır.
Örnek:

Goto bitir
..

..
:bitir
ECHO Program sonlandırıldı.

IF Komutu:
Mantık kısmından sırumlu komuttur. Kullanımı Qbasic ‘deki ile çok benzerdir. If fonksiyonu ile kullanılan EXIST sözcügü kendisinden sonra gelen dosya adının aktif dizinde bulunup bulunmadığını kontrol eder.

IF EXIST autoexec.bak ECHO Autoexec dosyasının yedeği bulundu.

Bu örnek autoexec.bak dosyasının bulunması halinde kendisinden sonra gelen ECHO komutunu çalıştırır.

IF NOT EXIST setup.exe ECHO kurulum dosyaları bulunamıyor.

NOT eki dosyanın bulunaması durumunda bu satırdaki komutun işlenmesini sağlar.

Bir diğer kullanılan sözcük ise ERRORLEVEL dir. Bazı programlar sonlandığında
DOS ‘a bir çıkış kodu üretir. Bu çıkış kodu ERRORLEVEL dizesi ile yönetilir. (Bkz. Choice komutu)

Batch dosyası ile kullanılan parametreleri veren değişkenler %1-%9 şeklindedir. %1 batch dosyası ile kullanılan ilk parametreyi, %5 ise 5. Parametreyi temsil eder. %0 parametresi ise dosya adını ve patikasını içerir.Örneğin disketin ana dizininde bulunan bir kur.bat dosyasını komut satırından çalıştırmak için yazılan:

Kur.bat c:\program\ normal

şeklindeki bir ifadede %0 a:\kur.bat, %1 c:\program\, %2 normal ‘dir.

FOR Komutu:
Yine Qbasic ‘ten hatırlayacağınız çok kullanışlı bir komut. Bir işlemin değişik birkaç kere değişik elemanlar için yapılmasını sağlar.

For %%degisken in (*.doc *.txt *.wri) do echo %%degisken >> Dosyalar.txt

Bu yönerge tüm metin dosyalarının isimlerini Dosyalar.txt dosyasının içine kaydeder. Bu örnekte bilmemiz gereken diğer bir dizilim >> işaretleri. Bu işaret işlemin sonucunu yönlendiriyor ve Dosyalar.txt isimli bir dosya yaratılarak elde edilen her sonucun bu dosyaya eklenmesini (appending) sağlıyor. Eğer sadece > işareti kullanılsa idi üzerine yazma (Overwriting) sözkonusu olacaktı. Bunun sonunda bu dosyayı bir text editörü ile açtığımızda sadece son dosyanın adını görebilecektik. Çünkü her işlemde dosya silinip yeniden yaratılacaktı.
Komut satırından kullanımında %%degisken yerine %degisken olarak (tek % işareti ile) kullanılmalıdır.

SHIFT komutu:
Yığın dosyasının parametrelerini bir sıra kaydırır, ilk parametreyi siler. Bir örnekle daha iyi anlayabiliriz:

Dosyasil.bat c:\file000?.chk c:\bootlog.txt c:\netlog.txt

REM dosyasil.bat dosyası içeriği
@ECHO OFF
:basla
IF “%1” == “” GOTO bitti
ECHO Siliniyor: %1
del %1
SHIFT
GOTO basla
:bitti
ECHO Silme işlemi tamamlandı.

Önce silme işlemi c:\file000?.chk için yapılacak; sonra %2 c:\bootlog.txt parametresi SHIFT komutu ile %1, %3 parametresi c:\netlog.txt %2 yerine geçecek.
Böylece işlem tekrar tekrar %1 parametresinin içeriği kalmayıncaya kadar devam edecek.

CHOICE komutu:
CHOICE MS-DOS ‘un dış komutudur. Şimdiye kadar gördüğümüz diğer komutlar iç komut olduğundan sistemde çalışmaları sorun olmaz. Fakat bu komutun çalışması için gerekli CHOICE.COM dosyasının batch dosya ile aynı dizinde olması veya bulunduğu dizinin PATH komutu ile tanımlanmış olması gerekir. Choice komutu ile kullanıcıdan seçim yapılmasını sağlanır. Kullanım kalıbı şu şekildedir:

CHOICE [/C[:]Tuşlar] [/S] [/N] [/T:v,nn] [Metin]

/C Geçerli tuşları belirler. /C:ehs ifadesi geçerli tuşları e, h veya s yapar. Geçerli tuşlar [] işaretleri arasında virgül ile ayrılmış olarak görüntülenirler. Eğer sadece /C şeklinde kullanılırsa geçerli tuşlar y ve n dir.
/S Tuş seçiminde büyük harf/küçük harf duyarlı (case sensitive) olmasını sağlar.
/N Geçerli tuşların satırda gözükmemesini sağlar.
/Tv,nn nn saniye içerisinde herhangi bir giriş yapılmazsa kullanıcının v tuşuna bastığını varsayar.nn, 0-99 arası değerleri alabilir.
Metin Görüntülenecek metindir.

Örnek:

CHOICE /C:eh /N /T:h,10 Devam etmek istiyor musunuz (e/h)?

Choice ifadesi ile elde edilen seçimi yönlendirebilmek için IF komutu ile kullanılan ERRORLEVEL ifadesinden yararlanılır. Yukarıdaki örnekte e tuşuna basılması sonucu oluşan ERRORLEVEL değeri 1, h tuşuna basılması sonucu elde edilen değer 2 ‘dir. ERRORLEVEL ifadeleri dosya içinde azalan değerlere göre yazılmalıdır. Örnek:

@ECHO OFF
REM Yedekleme programı
ECHO Yedekleme programı v1.0
ECHO.
ECHO a. C:\Belgelerim klasörünü yedekle
ECHO b. Sistem ayar dosyalarını yedekle
ECHO c. Çıkış
ECHO.
CHOICE /C:abc /N /T:c,10 Seçiminiz ?
IF ERRORLEVEL 3 GOTO cikis
IF ERRORLEVEL 2 GOTO ayar
IF ERRORLEVEL 1 GOTO belge
:belge
ECHO a: sürücüsüne bir disket takın ve ENTER
ECHO tuşuna basın
PAUSE > NUL
xcopy c:\belgel~1\*.* a: /s
goto cikis
:ayar
ECHO a: sürücüsüne bir disket takın ve ENTER
ECHO tuşuna basın
PAUSE > NUL
copy c:\autoexec.bat a:
copy c:\config.sys a:
:cikis
ECHO Program bitti.

Yığın dosyaları, eğer meraklı bir kullanıcıysanız, pratikte size büyük bir kolaylık sağlayacaktır…

Bunlarda ilginizi çekebilir.

http://www.sakirkoc.com/2011/04/18/ileri-batch-komutlari/

http://www.sakirkoc.com/2011/04/18/bat-komutlari/

http://www.sakirkoc.com/2011/03/30/ms-dos-komutlari/

http://www.sakirkoc.com/2011/04/18/sistemci-icin-faydali-bat-komutlari/

 

Related Posts Plugin for WordPress, Blogger...
Genel, Windows XP ve 7 kategorisine gönderildi
6 comments on “ileri batch komutları
  1. newprogrammer diyor ki:

    vallla eline sağlık iyi olmuş ama benim istedim bu kadar ileri değil bu fazla oldu be 😀

  2. Recep diyor ki:

    Hocam gerçekten çok güsel bilgiler var.Lakin ben bu choice komutunu bir türlü beceremedim.

    Set /p felan deniyorum bir türlü yapamadım.İstediğim şöyle bir şey
    5 saniye içinde belirlenen bir harfa,rakama bazılmaz ise benim atadığım harf devreye girecek.nette yabancı sitelerede baktım bir türlü yapamadım.

  3. sakirkoc diyor ki:

    “CHOICE MS-DOS ‘un dış komutudur. Şimdiye kadar gördüğümüz diğer komutlar iç komut olduğundan sistemde çalışmaları sorun olmaz. Fakat bu komutun çalışması için gerekli CHOICE.COM dosyasının batch dosya ile aynı dizinde olması veya bulunduğu dizinin PATH komutu ile tanımlanmış olması gerekir.”

    yukarda anlatılan şekilde denediniz mi?

  4. turnoff diyor ki:

    asagidaki programi batch file ile nasil yapalir
    <<<<>>>>
    . telefon numarasi ara
    . telefon numarasi ekle
    . telefon numarasi sil
    . telefon numaralarini yazdir
    . programdan cik

    secim yap :

    telefon numaralari telefonkaydi.txt e depolanacak

  5. turnoff diyor ki:

    “<<<<>>>>”
    . telefon numarasi ara
    . telefon numarasi ekle
    . telefon numarasi sil
    . telefon numaralarini yazdir
    . programdan cik

    “secim yap :”

    telefon numaralari telefonkaydi.txt e depolanacak

  6. turnoff diyor ki:

    telefon rehberim
    1 . telefon numarasi ara
    2 . telefon numarasi ekle
    3 . telefon numarasi sil
    4 . telefon numaralarini yazdir
    X . programdan cik

    secim yap 1-4 , X :

    telefon numaralari telefonkaydi.txt e depolanacak

Bir Cevap Yazın

Son Yazılar

doraglass