2011-11-08 62 views

回答

1

如果你的第二个.vbs文件是你的第一个.VBS应该执行“就好像在命令行”,然后使用.RUN(或.Exec)一个完整的脚本正如马可所建议。

如果你的第二个.vbs是一个包含functions/subs/classes的模块,其中一些你想在你的第一个.vbs文件中使用,请在第二个文件的.ReadAll()上执行[Global]。

如果您可以/想要将第一个文件重新编码为.wsf,则可以使用带有src属性的脚本标记来“导入”您的模块。简约演示:

模块:

'' mod.vbs 
Function SampleFunc() 
    SampleFunc = "mod::SampleFunc()" 
End Function 

主文件:

<job> 
<script language="VBScript" src="mod.vbs" /> 
<script language="VBScript"> 
    WScript.Echo WScript.ScriptName 
    WScript.Echo SampleFunc() 
</script> 
</job> 

输出:

cscript main.wsf 
main.wsf 
mod::SampleFunc() 

另一种策略是把你的模块代码中的.wsc文件;它为您提供了一个COM组件,您可以通过CreateObject()注册和使用,或者通过GetObject("script:<filespec>")加载。

0

尝试使用:

Set WSHShell = CreateObject("WScript.Shell") 
WSHShell.Run "wscript " & strFileName, , True