2012-08-23 29 views
0

我有兩個文件的VBScript,file1.vbs和file2.vbs 在a.vbs,我有以下代碼:vbscript如何導入一個沒有自動運行的函數?

暗淡了:A = 1

function myFunction(k) 
... 
end function 

call myFunction(a) 

所以file1.vbs實際上可以獨立運行。現在在file2.vbs中,我想調用駐留在file1.vbs中的myFunction(k)。但是,當我在file2.vbs中導入file1.vbs時,調用的myFunction也會被導入,導致自動運行帶有參數「a」的myFunction ...這不是我想要的,因爲我可能會給myFunction一個不同的參數,說「b」。

我該如何構建程序,使file1.vbs可以獨立運行,而file2.vbs也可以調用file1.vbs中的myFunction,但使用不同的輸入參數?謝謝。

+0

如何導入'file1.vbs'到'file2.vbs'? – DavidRR

回答

3

在我看來,最好的辦法是讓圖書館/模塊.vbs只包含可重用子/函數/類但不包含頂級(立即執行)代碼的文件。用戶.vbs文件通過ExecuteGlobal導入庫文件.ReadAll(),如Microsoft TechNet post所示。

(另見Execute它具有類似的功能,但也可以定義具有當地範圍對象和變量。)

如果你堅持混合模塊和頂級的代碼,你可以使用Python的成語和比較當前的WScript.ScriptName針對字符串文字,並且僅在匹配時才調用相應的「頂級代碼」。

+0

@DavidRR - 感謝您做我應該做的事情。 –

+0

Ekkehard @Horner - 很高興能夠參與進來。不知道我們是否會從海報中聽到......(順便說一句,當我將(at)放在Ekkehard前時,它不會粘住。) – DavidRR