指令碼編程教學(1)
論壇上好多朋友都問關於指令碼的問題,正好最近對指令碼比較有興趣,就寫點東西吧。首先說明一下,我的所有代碼都是
vbscript,jscript我沒有研究過,不過我想也差不多。
關於最基礎的文法比如變數的申明,分支,迴圈,函數的調用,等等這些我就不講了,不懂得自己看一下。
1、我們的第一個vbs程式:還是那個老得掉牙的冬冬。
************************hello.vbs**************************
dim hello
hello=”hello world!”
wscript.echo hello
wscript echo “ this is my first vbs”
可以看出wscript.echo有兩種用法,這個不難。
可以直接雙擊運行,可以在目前的目錄的命令列輸入:
cscript hello.vbs
2、在指令碼中調用其他的程式:
使用run()方法,在使用前必須先建立shell的執行個體
********************shell.vbs******************************************
set ws=wscript.createobject("wscript.shell")
ret=ws.run ("notepad" ,3,true)
if ret=0 then
wscript.echo “succeed!”
else
wscript.echo “there is a error,the error number is:”
wscript.echo cstr(ret)
end if
***************************************************************************
這裡run 有三個參數,第一個參數是你要執行的程式的路徑
第二個程式是視窗的形式,0是在後台運行;
1表示正常運行
2表示啟用程式並且顯示為最小化
3表示啟用程式並且顯示為最大化
一共有10個這樣的參數我只列出了4個最常用的。
第三個參數是表示這個指令碼是等待還是繼續執行,如果設為了true,指令碼就會等待調用的程式退出後再向後執行。
注意到沒有,我在run的前面還有一個接受傳回值的變數,一般來說如果返回為0,表示成功執行,如果不為0,則這個
傳回值就是錯誤碼,可以通過這個代碼找出相應的錯誤。
3、inputbox 和msgbox
會vb的人對著兩個東西應該很熟悉,用法也沒什麼差別
input=inputbox(“please enter you password”,”passwd”)
if input<>”1234”
then
msgbox “you enter a wrong passwd”
end if
當然你也可以給msgbox添加按鈕,用一個變數接受使用者的選擇
例如:ret=msgbox “continue?”,vbyesnocancel
傳回值和常量對照如下:
vbok 1
vbcancel 2
vbabort 3
vbretry 4
vbignore 5
vbyes 6
vbno 7
4、錯誤處理
何vb一樣用on error resume next
這個沒什麼好說的,如果遇到了錯誤就跳過繼續執行下一句
當然這個方法很弱智,還需要有一個方法,vbscript提供了一個對象err對象
他有兩個方法clear,raise
5個屬性:description,helpcontext ,helpfile,number,source
我們可以利用err.number獲得錯誤號碼例如
***********************err.vbs*****************************
on error resume next
a=11
b=0
c=a/b
if err.number<>0 then
wscript.echo err.number & err.description & err.source
end if
我們可以用err.raisel來手工拋出錯誤
比如我們要產生一個path not found的錯誤 告訴使用者,他填寫的路徑不對
on error resume next
err.raise 76
msgbox "error :" & err.description
err.clear
以上都是基礎,今天就寫到這裡吧,好累哦,呵呵呵 如有轉載註明出處。明天給大家講檔案系統吧。