02 Haziran 2024 Pazar English Abone Ol Giriş Yap

Katalog

BİLGİSAYAR DÜNYASI Dos'ta BATCH Dosyası teknikleri BATCH dosyalarını nasıl daha kullanışlı hale getirebilirsiniz? DOSYA1 olur ve DOSYA1 yazıcıda basılır, sonra ıkıncı komutun parametresı olarak DOSYA2 kabul edılır ve DOSYA2 ekranda göruntulenır Derleyen: Nezihe Bahar > ışletım sıstemını kulı lananlar "batch" 'dosyası denen küçük dosyalar hazırlayarak sıstem komutlarını gruplar halınde bırleştırebıleceklerını ve böylece çeşıtlı ışlemlerı daha pratık şekılde halledebıleceklerını bılır Batch dosyaları dosya adının son bölümü "BAT" olan ve program ısımlen gıbı sadece adı yazılarak çalıştırılan dosyalardır örneğın »I* s Koşullu Ifadeler OOS 30 ve sonrasında bu ışaretlerden sonra başka bır şey gerekmez, ancak DOS2 x ıçın bu ışaretlerden sonra bır defa boşluk tuşuna basılması gerekır Yanı ECHO / (boşluk) şeklınde yazılarak boş satır yaratılır (Ama nokta ışaretı ıçın bu uygulama geçerlı olmaz) Bellı bır mesajın fark edıldiğınden emın olmak ıstersenız, mesajınıza zıl sesı ekleyebılırsınız Bu amaçla mesajın bulunduğu yere ASCII kod 7 eklenır ASCII kod 7'nin bır başka ıfadesı CtrlG ışaretıdır Bu amaçla Control tuşu ıle G tuşuna aynı anda basılması gerekır Bu yapılınca ekranda â G şeklınde ınceltme ışaretını ızleyen bır G harfı çıkar Şöyle bır mesaj zıl sesı ıle bırlıkte göruntulenır ECHO â G Dıkkat Batch dosyalar ıçınde IF komutu kullanarak koşullar koyabılır, verılen parametrelere göre değışık ışlemler seçılmesını sağlayabılırsınız En çok kullanılan koşullu ıfade "= = " ışaretı ıle karakter dızılerının kıyaslanışıdır Koşula bağlı olarak gıdılecek yerı göstermek üzere GOTO kullanılır örneğın IF "%1"7R" GOTO REVERSE TYPE HELPDCT PAUSE GÖTOEND REVERSE (ılk parametre olarak /R verıldığınde yapılacak işlemler buraya yazılır) END Yukarıdakı batch dosya çalıştırıldığında ılk parametre olafak /R gırılmesı durumunda başka, başka bır şey gırılmesı durumunda başka ışler yapılır Burada kullanılan kıyaslama ışaretı bazı noktalara dıkkat edılmesını gerektırıyor Küçuk harf ve buyuk harf kullanılan durumların ayrı ayrı test edılmesı gerekır, kıyaslanan karakter dızılerı arasında boşluk varsa boşluğun da kıyaslama ıçınde ışlem göreceğı dıkkate alınmalı ve = = ışaretının her ıkı yönde metın bekledığı hatırlanarak boşluk durumunda, yanı bır komut satırı parametresı kullanılmaması durumunda hata mesajı çıkmasını önlemek ıçın o durum ayrıca test edılmelıdır Örnek IF "%1"=="" GOTO HELP GOTO %1 HELP TYPE HELPTXT GOTO END BASIC (Basıc çalıştıracak komutlar yazılabılır) GOTO END WORD (Kelıme ışlemci çalıştıracak komutlar) END Bu batch dosyası ıle kullanılabılecek ıkı geçerlı parametre BASIC ve VVORD'dur Dosya adı ıle bırlıkte hangısı verılırse o bölum ışleme sokulur Parametre verılmez ıse dosya sonuna gıdılerek ışlemsız çıkış sağlanır IF komutunu kullanmanın ıkıncı yolu IF ERRORLEVEL şeklindekı kullanımdır IF ERRORLEVEL ıfadesı ekrandan alınacak bır karakterı tespıt eden bır programın sonuç kodunu alarak ekrandan alınacak karaktere göre ışlem yapma olanağı sağlar Aranan değer ve bır üstu ıçın kontrol yapılmalıdır örnek ECHO %1 adlı dosyayı gerçekten sılmek mı ıstıyorsunuz? GETKEY Evet ve Hayır ıçın Y ve y kontrolü IF ERRORLEVEL 89 IF NOT ERRORLEVEL 90 GOTOSIL COPY DOSYA1 DOSYA2 TYPE DOSYA2 şeklindekı ikı komutu DENE BAT adlı bır batch dosyasına yazar, sonra ekrana sadece DENE yazıp enter tuşuna basarsak, bılgısayar bu ıkı komutla belırtılen ışlemlerı arka arkaya uygular, yanı önce DOSYA1 adlı dosyayı DOSYA2 adlı dosyaya kopyalar, sonra DOSYA2 adlı dosyayı ekranda gösterır Batch dosyasına "Echo off" dıye başlayarak ışlemler sırasındakı mesajların ekrana çıkmamasını sağlayabılırsınız Batch dosyası sonunda "Echo On" yazarak mesajların görunmesını sağlamanız gerekmez (Böyle bır gereklılık ANSI SYS kontrol kodları kullanılması durumunda ortaya çıkar) ECHO OFF komutu verıldıkten sonra başına REM yazılı mesajlar ekrana gelmez, ama ECHO yazılı mesajlar gelır Örneğın ECHO OFF REM Bu mesaj görunmez ECHO Bu mesaj görunur ECHO yazarak mesajların ekrana getırılmesı konusunda dıkkat edılecek bır nokta var Bu teknık çok yavaş çalışır, DOS her ECHO komutu ıçın ayrı ayrı dıskten okuma yapar Bu nedenle bırkaç satır surecek mesajlar yazdırmak ıstıyorsak, onları bır başka dosya ıçınde hazıriamak, sonra batch dosyası ıçınde bu ıkıncı dosyanın yazılmasını ısteyen TYPE komutunu kullanmak daha doğru olur örneğın mesajları MESAJTXT adlı bır dosyada hazırlamış ısek aşağıdakı şekılde bır batch dosyası uygun olur CLS TYPE MESAJTXT PAUSE Burada PAUSE komutu ekrandakı yazı okunana kadar başka ışleme geçılmemesını sağlar, çunkü kullanıcının bır tuşa basmasını bekler Yine de mesajları ECHO komutu ıle yazmayı tercıh edıyorsanız, bır sorun daha var, ECHO boş satır göruntulemez Mesajlar arasına boş satırlar yerleştırmek ıstersenız, aşağıdakı ışaretlerden bırıni hemen ECHO kelımesını takıp edecek şekılde yazmanız gerekır. REM Batch dosyaları ıçıne REM ifadesı ıle başlayan açıklama satırları konabılır Her dosya mınımum bır "cluster" dısk alanına mınımum 1024 byte yerleştırıleceğı ıçin REM satırları eklemek pek fazla dısk alanı kaybı getırmez Ancak çalışma suresı etkılenır ECHO ıfadesı gıbı REM ıfadelerı ayrı ayrı ışlem görur Bu nedenle REM ıfadesı kullanmak yerıne açıklama satırlarını etıket ışaretı " " yanına yazabılırız DOS etıketlı ıfadelerı REM ıfadelerıne göre 5 defa daha hızlı ışlemden geçırır Batch dosyasının çalışması sırasında bu etıketlı cumleler ekrana gelmez Etıket ışaretı ıle gızlenmış açıklama cumlelerı başına ek ışaretler koyarak onların ınceleme sırasında gerçek etıket cumlelerınden ayrılmalarını sağlayabılırsınız Örneğın ORNEK BAT Bu mesaj görunmez ECHO OFF ECHO IF ERRORLEVEL 121 IF NOT ERRORLEVEL 122 GOTOSIL GOTO END SIL DEL%1 END Yukarıdakı batch dosyasında GETKEY ekrandan bır tuş karakter alan herhangı bır küçük program olabılır IF komutunu kullanmanın üçuncü yolu IF EXIST ıfadesının kullanılmasıdır Bır dosyanın dıskte mevcut olması durumunda kopyalanmasını ıstemek ıçın şöyle bır batch dosyası yazılabılır IF NOT EXIST °M GOTO YOK COPY %1 %2 GOTO END YOK ECHO %1 adlı dosya bulunamadı END Batch dosyaları çalıştırılırken verılecek parametrelerı temsıl etmek uzere %1'den %9'a kadar 9 sembol kullanılabıldığı belirtilmıştı Daha fazla parametre kullanmak ıstersenız, SHIFT kullanarak aynı parametre numarasını ekrandan gırılen çok sayıda değışken ıçın geçerlı hale getırebılırsınız Örneğın aşağıdakı batch dosyasında ekrandan bır dırectory adı ve sonra ardından çeşıtlı dosya adları alınır Dırectory adı bır değışkende saklantr ve bır sonrakı parametre ıle verılen dosya o dırectory'e kopyalanır Daha sonra SHIFT komutu ıle bu değışkenın parametre numarası olan %2 bır sonrakıne geçırılır, bır sonrakı dosya da aynı ışleme tabı tutulur ve ardından parametre numarası bır sonrakı dosyaya aktarılır, bu döngu yenı bır parametre kalmayıncaya kadar surer Çeşıtlı dosyalar aynı dırectory'ye kopyalanır ECHO OFF IF " % 1 " " " GOTO HELP SET DEST %1 START IF "%2"= = "" GOTO END IF EXIST %2 GOTO OK ECHO %2 YOK SHIFT GOTO START OK COPY %2 %DEST% SHIFT GOTO START HELP ECHO Sıntax %0 dırectory Dosyai (dosya2 vb ) ECHO Dosyai, dosya2 vb kopyalanacak dosyalardır END Not %0 Batch dosyasının adının yazılmasını sağlar örnek PARAMETRE KULLANIMI DOS komutları gıbı batch dosyası ısımlen de parametre ıle kullanılabılır ilk parametre ıçın % 1 , sonrakıler ıçın %2, °/t>3, %4 vb %9'a kadar ışaretler kullanılır Böylece bır batch dosyası ıçınde %1 ışaretı ekrandan gırılen ılk parametre anlamını taşır Örneğın bır batch dosyasında TYPE %1 yazılı ıse ve batch dosyasının adı YAZ BAT ıse ve ekrana YAZ DOSYA1 yazıp enter tuşuna basarsak %1 ıle temsıl edılen ılk parametre olarak DOSYA1 verılmış olur ve batch dosyası ıçındekı TYPE komutu uygulanarak DOSYA1 ekrana gelır Batch dosyamız ıçındekı ıkı ayrı parametre ısteyen ıkı komut bulunsun Örneğın COPY %1 PRN TYPE%2 komutlarını taşıyan ylne YAZ BAT adlı bır batch dosyamız varsa ve ekrana YAZ DOSYA1 DOSYA2 yazarak enter tuşuna basarsak, ılk komutun parametresı BATCH dosyalarında döngüler SHIFT komutu kullanılarak daha öncekı bır bolume tekrar göndermek suretiyle bır döngu yaratılışını görduk Çeşıtlı başka döngüler de yaratılabılır FOR komutu bır lıstede yer alan her eleman ıçın bır tek Lütfen sayfayı çevirlnlz " / IJ
Abone Ol Giriş Yap
Anasayfa Abonelik Paketleri Yayınlar Yardım İletişim English
x
Aşağıdaki yayınlardan bul
Tümünü seç
|
Tümünü temizle
Aşağıdaki tarih aralığında yayınlanmış makaleleri bul
Aşağıdaki yöntemler yoluyla kelimeleri içeren makaleleri bul
ve ve
ve ve
Temizle