使用SendKeys方法的VBScript错误“无效或不合格的参考”

时间:2014-01-03 22:19:00

标签: vbscript compiler-errors runtime-error sendkeys wsh

我的.vbs文件中的代码出现以下错误:

C:\...\Root_VBS_Script_1.vbs(19, 1) Microsoft
VBScript runtime error: Invalid or unqualified reference

1 was unexpected at this time.

.vbs文件如下:

Set wshShell = CreateObject("Wscript.Shell")

Set args = WScript.Arguments
arg1 = args.Item(0)

Dim filename

filename = ""&arg1&""


WshShell.SendKeys "root -b" //opens root in batch mode
WshShell.SendKeys "~"
WshShell.AppActivate ROOT_session
WshShell.SendKeys ".x analysis.C"
wshShell.SendKeys "~"
WshShell.SendKeys ".x double_gaus.C"
WshShell.SendKeys "~"
WshShell.AppActivate ROOT_session
WshShell.SendKeys "c1->SaveAs("&filename&.pdf&")"
WshShell.SendKeys "~"
WshShell.SendKeys ".q"
WshShell.SendKeys "~"

WScript.Quit 1

我使用send keys方法从批处理文件调用的.vbs文件中运行一个名为root(由CERN开发)的程序。我在调用.vbs文件时附加文件名作为参数。我不确定为什么我会收到此错误,但我确实知道send key方法打开root并运行直到它应该将c1保存为给定的文件名和类型。

任何人都可以帮我解决此错误吗?

1 个答案:

答案 0 :(得分:1)

这是你的罪魁祸首:

WshShell.SendKeys "c1->SaveAs("&filename&.pdf&")"

没有可以连接的变量.pdf。由于前导点,它甚至不是有效的变量名。您可能打算在此处将变量filename与字符串.pdf连接起来。将上面的行更改为:

WshShell.SendKeys "c1->SaveAs(" & filename & ".pdf)"

更一般地说:为什么你首先使用VBScript(特别是SendKeys)?如果我正确理解documentation,您可以从其他root脚本中运行root脚本,因此不需要其他脚本语言或不可靠的方法,如SendKeys