我想在脚本中执行代码,知道我想要执行的代码路径的路径(它的.vbs文件)。我不知道我应该使用Eval还是有另一种方式?
答案 0 :(得分:1)
如果你的第二个.vbs文件是一个完整的脚本,你的第一个.vbs应该执行'就像从命令行那样',那么就像Marco建议的那样使用.Run(或.Exec)。
如果你的第二个.vbs是一个包含函数/ subs / classes的模块,你想在你的第一个.vbs中使用它们,在第二个文件的.ReadAll()上执行一个Execute [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>"
)加载。
答案 1 :(得分:0)
尝试使用:
Set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "wscript " & strFileName, , True