我的.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保存为给定的文件名和类型。
任何人都可以帮我解决此错误吗?
答案 0 :(得分:1)
这是你的罪魁祸首:
WshShell.SendKeys "c1->SaveAs("&filename&.pdf&")"
没有可以连接的变量.pdf
。由于前导点,它甚至不是有效的变量名。您可能打算在此处将变量filename
与字符串.pdf
连接起来。将上面的行更改为:
WshShell.SendKeys "c1->SaveAs(" & filename & ".pdf)"
更一般地说:为什么你首先使用VBScript(特别是SendKeys
)?如果我正确理解documentation,您可以从其他root
脚本中运行root
脚本,因此不需要其他脚本语言或不可靠的方法,如SendKeys
。