国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

vbscript include的辦法實(shí)現(xiàn)代碼第1/2頁

2019-10-26 18:02:20
字體:
供稿:網(wǎng)友
任何真正實(shí)用的工程開發(fā)都必然是多文件的。但是VBScript創(chuàng)建多文件工程要麻煩一點(diǎn),它對多文件工程,代碼復(fù)用的支持并不是太好。在C/C++工程里,我們已經(jīng)習(xí)慣了通過一個include語句,并且聲明一個函數(shù)原形的方式來使用其它模塊中的函數(shù),這樣一個復(fù)雜的工程可以比較容易地分解成一些小的模塊,以更容易理解和掌握。VBScript中情況有些不同。這與它的設(shè)計目標(biāo)有關(guān)。最初VBScript是用在客戶端腳本,以支持與客戶端作簡單的交互,如簡單的輸入檢查等等。在瀏覽器里顯然沒有辦法支持對另一個文件中的函數(shù)的調(diào)用,你不知道那個文件是否存在,何時存在。那么以本地腳本形式執(zhí)行的VBScript又怎么樣呢?想想看這條命令:cscript.exe yourscript.vbs。顯然一個VBS運(yùn)行在一個進(jìn)程空間里(cscript進(jìn)程),它也沒有辦法得到另一個文件中的函數(shù)。

認(rèn)識到了VBScript的局限性,我們來看如何解決它。

第一種需要可能是需要在一個腳本運(yùn)行的中間直接運(yùn)行另外一個腳本。這可以通過下面的方法來完成:

Set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "wscript c:/Test.vbs param1", , True

注意到這里我們Test.vbs運(yùn)行在另外一個進(jìn)程空間(wscript進(jìn)程)里,加上執(zhí)行當(dāng)前腳本的WSH,我們一共有兩個進(jìn)程。這是通過WSHShell.Run來做到的,這個方法的原型是:

object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])

如果時序很重要,你可以在bWaitOnReturn這個參數(shù)中指定主腳本是否要等待被執(zhí)行的腳本運(yùn)行結(jié)束后才能繼續(xù)。

另一點(diǎn)需要注意的地方是strCommand參數(shù),這個參數(shù)是一個復(fù)合體,以空格區(qū)分各個域。如果需要將運(yùn)行參數(shù)傳遞給被調(diào)用的腳本,應(yīng)該在第二個空格后面輸入。下面的例子顯示了如何獲取主腳本傳遞來的參數(shù)。對了,是通過WScript.Arguments來訪問。WSCript還有其他一些有趣的屬性,請記得讀一下文檔。

Set oArgs = WScript.Arguments
For i = 0 to oArgs.Count - 1
WScript.Echo oArgs(i)
Next

關(guān)于參數(shù)解析,這里給出一個Windows 2000 support tools中的一個腳本的例子。你可以復(fù)用這個函數(shù),以解析任何以/ArgName:Value形式指定的參數(shù)。

' searches for and returns the value of a command line argument of the form
' /argName:value from the supplied array. erases the entry in the array so
' that only untouched entries remain.

function GetArgValue(argName, args())
dim a
dim v
dim argNameLength
dim x
dim argCount
dim fullArgName

fullArgName = "/" & argName & ":"
argCount = Ubound(args)

' Get the length of the argname we are looking for
argNameLength = Len(fullArgName)
GetArgValue = "" ' default to nothing

for x = 0 To argCount
if Len(args(x)) >= argNameLength then

a = Mid(args(x), 1, argNameLength)
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 广宗县| 永福县| 临海市| 五华县| 林甸县| 西昌市| 和田市| 湖北省| 方城县| 舞阳县| 通城县| 清镇市| 武义县| 阜阳市| 炉霍县| 麻江县| 庆云县| 土默特右旗| 新乐市| 灌云县| 绿春县| 酒泉市| 开江县| 吴江市| 应城市| 庄浪县| 绵阳市| 温宿县| 伊宁县| 聂荣县| 商丘市| 沁源县| 攀枝花市| 惠东县| 安徽省| 贵州省| 周口市| 钦州市| 龙游县| 汉沽区| 丰台区|