Bir komut dosyası, Internet hizmet sağlayıcısının ya da çevrimiçi hizmetinin bu bağlantıyı kurması ve bu hizmeti kullanması için gereken bir dizi komutu, parametreyi ve deyimi içeren bir metin dosyasıdır. Bir komut dosyası yaratmak için, Microsoft Not Defteri gibi herhangi bir düzenleyici kullanabilirsiniz. Komut dosyanızı bir defa yarattıktan sonra, Çevirmeli Erişim için Komut Dosyası Yazma Aracı'nı çalıştırarak bu dosyayı özel bir Çevirmeli Ağ bağlantısına atayabilirsiniz.
2.0 Bir Komut Dosyasının Temel Yapısı
Komut, komut yazma dosyasının içerdiği temel yönergedir. Bazı komutlar, komutun ne yapması gerektiğini tanımlayan parametrelere gereksinim duyarlar. Deyim, bir sonuç oluşturan bağımsız değişkenlerin ve işleçlerin birleşimidir. Deyimler, herhangi bir komutun içinde değer olarak kullanılabilirler. Deyimlere örnek olarak, aritmetik ve ilişkisel karşılaştırmalar ve dizi bitiştirmeler verilebilir.
Çevirmeli Ağ için komut dosyasının temel biçimi aşağıdaki gibidir:
;
; Açıklama, noktalı virgülle başlar ve satırın sonuna kadar
; gider.
;
proc main
; Bir komut dosyasında bulunabilecek değişken ve
; komut sayısının sınırı yoktur
değişken bildirimleri
komut bloğu
endproc
Bir komut dosyasının, proc anahtar sözcüğü ve bu sözcükle eşleşen ve yordamın sonunu gösteren endproc anahtar sözcüğü ile belirtilen bir ana yordamı mutlaka olmalıdır.
Değişken bildirimlerini, komutları eklemeden önce yapmalısınız. Önce ana yordamdaki ilk komut yürütülür ve sonra onu izleyen komutlar, komut dosyasında göründükleri sıra ile yürütülür. Ana yordamın sonuna gelindiğinde komut dosyası da biter.
3.0 Değişkenler
Komut dosyaları değişkenler içerebilir. Değişken adları bir harfle ya da bir altçizgi ('_') ile başlar ve herhangi bir şekilde sıralanmış büyük ya da küçük harfler, sayılar ya da altçizgiler içerebilir. Ayrılmış bir sözcüğü bir değişken adı olarak kullanamazsınız. Daha fazla bilgi için, bu belgenin sonunda yer alan ayrılmış sözcükler listesine bakın.
Değişkenleri kullanmadan önce bildirimlerini yapmanız gerekir. Bir değişken bildirimi yaptığınızda, o değişkenin türünü de belirtmeniz gerekir. Belli bir türdeki değişken ancak yine bu türdeki değerleri içerebilir. Aşağıdaki üç değişken türü desteklenmektedir:
Tür Açıklama
integer Bir negatif ya da pozitif sayı, örneğin: 7, -12, ya da 5698.
string Çift tırnak işareti içine alınmış bir karakter dizisi; örneğin, "Merhaba!" ya da "Parolanızı girin:".
boolean Mantıksal bir boolean değeri, TRUE (DOĞRU) ya da FALSE (YANLIŞ).
Aşağıdaki atama ifadesi kullanılarak değişkenlere değerler atanır:
değişken = deyim
Değişken eşitlenen deyimi alır.
Örnekler:
integer count = 5
integer timeout = (4 * 3)
integer i
boolean bDone = FALSE
string szIP = "getip 2"
set ipaddr szIP
3.1 Sistem Değişkenleri
Sistem değişkenleri komut dosyaları komutlarıyla ayarlanır ya da Çevirmeli Ağ bağlantısı kurarken verdiğiniz bilgiler tarafından belirlenir. Sistem değişkenleri salt okunurdur, bu da komut dosyası içinde değiştirilemeyecekleri anlamına gelir. Sistem değişkenleri şunlardır:
Ad Tür Açıklama
$USERID String Geçerli bağlantı için kullanıcı kimliği. Bu değişken,
Çevirmeli Ağ Bağlantı Yeri iletişim kutusunda belirtilmiş olan
kullanıcı adının değeridir.
$PASSWORD String Geçerli bağlantı için parola. Bu değişken, Çevirmeli Ağ
Bağlantı Yeri iletişim kutusunda belirtilmiş olan
kullanıcı parolasının değeridir.
$SUCCESS Boolean Bu değişken, komutun başarılı olup olmadığını belirtmek için bazı komutlar tarafından ayarlanır. Komut
dosyası, bu değişkenin değerine göre karar verebilir.
$FAILURE Boolean Bu değişken, komutun başarısız olup olmadığını
belirtmek için bazı komutlar tarafından ayarlanır. Komut
dosyası, bu değişkenin değerine göre karar verebilir.
Bu değişkenler, benzer türde bir deyimin kullanıldığı herhangi bir yerde kullanılabilir. Örneğin,
transmit $USERID
geçerli bir komuttur çünkü $USERID, "string" türünde bir değişkendir.
4.0 Dizi Hazır Bilgileri
Çevirmeli Ağ için Komut Dosyası Yazma, aşağıda açıklandığı gibi, kaçış tuşu dizisi ve kontrol dizisini destekler.
Dizi
Hazır Bilgileri Açıklama
^char Kontrol dizisi
char, '@' ile '_' arasında bir değerse karakter sırası, 0 ile 31 arasında olan bir
tek-bayt değere çevrilir. Örneğin, ^M bir satırbaşı değerine dönüştürülür.
char, a ile z arasında bir değerse karakter sırası, 1 ile 26 arasında olan bir
tek-bayt değere çevrilir.
char herhangi başka bir değerse, karakter sırasına özel bir işlem uygulanmaz.
" Çift tırnak
^ Tek kontrol dizisi
< Tek '<'
\ Ters eğik çizgi
Örnekler:
transmit "^M"
transmit "Gamze^M"
transmit "
waitfor "
5.0 Deyimler
Deyim, bir sonucun değerlendirilmesini sağlayan işleç ve bağımsız değişkenlerin birleşimidir. Deyimler, herhangi bir komut içinde değer olarak kullanılabilir.
Bir deyim, herhangi bir değişkeni ya da integer, string ya da boolean değerleri, aşağıdaki tablolarda görüleceği gibi herhangi birli ya da ikili işleç ile birleştirebilir. Tüm birli işleçler en yüksek önceliği alırlar. İkili işleçlerin önceliği tablodaki konumları ile belirtilmiştir.
Birli işleçler şunlardır:
İşleç İşlem Türü
- Birli eksi
! Bir'in tümleyeni
İkili işleçler öncelik sıralarına göre aşağıdaki tabloda listelenmiştir. Yüksek öncelikli işleçler listede önce yer alır:
İşleçler İşlem Türü Tür Sınırlamaları
* / Çarpma Integers
+ - Toplama Integers, Strings (yalnız + )
< > <= >= İlişkisel Integers
== != Eşitlik Integers, strings, booleans
and Mantıksal VE Booleans
or Mantıksal VEYA Booleans
Örnekler:
count = 3 + 5 * 40
transmit "Merhaba" + " dünya"
delay 24 / (7 - 1)
6.0 Açıklamalar
Noktalı virgülü izleyen tüm satır yoksayılır.
Örnekler:
; bu bir açıklamadır
transmit "merhaba" ; string "merhaba" aktarımı
7.0 Anahtar Sözcükler
Anahtar sözcükler komut dosyasının yapısını belirler. Komutların aksine, bir eylem gerçekleştirmezler. Anahtar sözcükler aşağıda listelenmiştir.
proc ad
Yordamın başlangıcını belirtir. Tüm komut dosyalarının bir ana yordamı olması gerekir (proc ana). Komut dosyasının yürütülmesi ana yordamdan başlar ve ana yordamın bitiminde sona erer.
endproc
Yordamın sonunu belirtir. Komut dosyası ana yordamın endproc ifadesine kadar yürütüldüğünde, Çevirmeli Ağ PPP ya da SLIP'e başlayacaktır.
integer ad [ = değer ]
Integer türünde bir değişken bildirimi yapar. Değişkenin ilk değeri için herhangi bir sayısal deyim ya da değişken kullanabilirsiniz.
string ad [ = değer ]
String türünde bir değişken bildirimi yapar. Değişkenin ilk değeri için herhangi bir dizi hazır bilgisi ya da değişken kullanabilirsiniz.
boolean ad [ = değer ]
Boolean türünde bir değişken bildirimi yapar. Değişkenin ilk değeri için herhangi bir boolean deyimi ya da değişken kullanabilirsiniz.
8.0 Komutlar
Tüm komutlar ayrılmış sözcüklerdir, bundan ötürü komutlarla aynı ada sahip değişken bildirimi yapamazsınız. Komutlar aşağıda listelenmiştir:
delay nSaniye
Komut dosyasındaki bir sonraki komutu yürütmeden önce nSaniye ile belirtilen saniye kadar duraklar.
Örnekler:
delay 2 ; 2 saniye duraklar
delay x * 3 ; x * 3 saniye duraklar
getip değer
Uzak bilgisayardan alınacak IP adresini bekler. Internet hizmet sağlayıcınız bir dize içinde birden fazla IP adresi döndürüyorsa, komut dosyasının kullanması gereken IP adresini belirtmek için değer parametresini kullanın.
Örnekler:
; ikinci IP adresini alır
set ipaddr getip 2
; ilk alınan IP adresini bir değişkene atar
szAddress = getip
goto etiket
Komut dosyasında etiket ile belirtilen konuma atlar ve onu izleyen komutları yürütmeye devam eder.
Örnekler:
waitfor "Prompt>" until 10
if !$SUCCESS then
goto BailOut ; BailOut'a atlar ve onu izleyen komutları
; yürütmeye başlar
endif
transmit "bbs^M"
goto End
BailOut:
transmit "^M"
halt
Komut dosyasını durdurur. Bu komut uçbirim iletişim penceresini kaldırmaz. Bağlantıyı kurmak için Devam'ı tıklatmanız gerekir. Komut dosyasını yeniden başlatamazsınız.
if durum then
komutlar
endif
Eğer durum DOĞRUise bir komutlar serisi yürütür.
Örnek:
if $USERID == "John" then
transmit "Johnny^M"
endif
etiket :
Komut dosyasında atlanılacak yeri belirtir. Etiketin benzersiz bir adı olmalı ve değişkenlerin adlandırılma düzenlerine de uygun olmalıdır.
set port databits 5 | 6 | 7 | 8
Bir oturum sırasında gönderilen ve alınan baytların içindeki bit sayısını değiştirir. Bit sayısı 5 ve 8 arasında olabilir. Komut dosyasında bu komutu kullanmadıysanız Çevirmeli Ağ, bağlantı için özellikler ayarlarını kullanacaktır.
Örnek:
set port databits 7
set port parity none | odd | even | mark | space
Oturum sırasında bağlantı noktası için parite şemasını değiştirir. Komut dosyasında bu komutu kullanmadıysanız Çevirmeli Ağ, bağlantı için özellikler ayarlarını kullanacaktır.
Örnek:
set port parity even
set port stopbits 1 | 2
Oturum sırasında bağlantı noktası için dur biti sayısını değiştirir. Bu sayı 1 ya da 2 olabilir. Komut dosyasında bu komutu kullanmadıysanız Çevirmeli Ağ, bağlantı için özellikler ayarlarını kullanacaktır.
Örnek:
set port stopbits 2
set screen keyboard on | off
Komut dosyası yazma uçbirim terminalinden yapılacak klavye girdisini etkinleştirir ya da etkinliğini kaldırır.
Örnek:
set screen keyboard on
set ipaddr dize
Oturum için iş istasyonunun IP adresini belirtir. Dize IP adresi biçiminde olmalıdır.
Örnekler:
szIPAddress = "11.543.23.13"
set ipaddr szIPAddress
set ipaddr "11.543.23.13"
set ipaddr getip
transmit dize [ , raw ]
Uzak bilgisayara dize ile belirtilen karakterler gönderir.
Komut içinde raw parametresini kullanmadığınız sürece, uzak bilgisayar kaçış tuşu dizisi ve kontrol dizisini algılayacaktır. $USERID ve $PASSWORD sistem değişkenleri aktarıldığında kullanıcı adı ya da parola karakter sıraları içeriyorsa, raw parametresini kullanmak yararlıdır, raw parametresi yoksa, kaçış tuşu dizisi ya da kontrol dizisi olarak algılanabilecektir.
Örnekler:
transmit "slip" + "^M"
transmit $USERID, raw
waitfor dize [ , matchcase ] [ then etiket
{ , dize [ , matchcase ] then etiket } ]
[ until zaman ]
Bilgisayarınız, uzak bilgisayardan belirtilmiş olan dizelerden bir ya da daha fazlasını alana kadar bekler. matchcase parametresi kullanılmazsa, dize parametresi küçük ve büyük harf duyarlıdır.
Eşleşen bir dize alınırsa ve then etiket parametresi kullanılırsa, bu komut, komut dosyasında etiket ile belirtilen yere atlayacaktır.
Seçime bağlı until zaman parametresi, bilgisayarınızın bir sonraki komutu yürütmeden önce, dizeyi almak için bekleyeceği saniye sayısının üst sınırını belirtir. Bu parametre yoksa, bilgisayar sonsuza kadar bekleyecektir.
Bilgisayarınız, belirtilmiş dizelerden birini alırsa, $SUCCESS sistem değişkeni TRUE'ya (DOĞRU) eşitlenir. Aksi takdirde, zaman ile belirtilen saniye sayısı dize alınmadan önce aşılmışsa, FALSE!a (YANLIŞ) eşitlenir.
Örnekler:
waitfor "Login:"
waitfor "Password?", matchcase
waitfor "prompt>" until 10
waitfor
"Login:" then DoLogin,
"Password:" then DoPassword,
"BBS:" then DoBBS,
"Other:" then DoOther
until 10
while durum do
komutlar
endwhile
durum YANLIŞ olana kadar komutlar serisini yürütür.
Örnek:
integer count = 0
while count < 4 do
transmit "^M"
waitfor "Login:" until 10
if $SUCCESS then
goto DoLogin
endif
count = count + 1
endwhile
...
9.0 Ayrılmış Sözcükler
Aşağıdaki sözcükler ayrılmış sözcüklerdir ve değişken adı olarak kullanılamazlar.
and boolean databits delay
do endif endproc endwhile
even FALSE getip goto
halt if integer ipaddr
keyboard mark matchcase none
odd off on or
parity port proc raw
screen set space stopbits
string then transmit TRUE
until waitfor while
Hiç yorum yok:
Yorum Gönder