
java如何获取vbs返回特定值
用户关注问题
我想在Java程序里运行一个VBS脚本,并且获取脚本执行后的返回结果,应该怎么做?
使用Java Runtime执行VBS并读取返回值
你可以使用Java的Runtime.getRuntime().exec()方法来执行VBS脚本,同时通过Process对象的输入流读取脚本返回的输出内容。具体步骤包括:1. 使用exec命令启动cscript.exe运行VBS脚本;2. 通过Process.getInputStream()读取脚本通过WScript.Echo输出的内容;3. 将读取的内容转换成字符串,即为VBS脚本的返回值。
我想把参数传给VBS脚本执行,同时拿回脚本处理后返回的值,在Java中怎么实现?
通过命令行参数传递并读取脚本输出
在Java中执行VBS脚本时,可以将参数作为命令行参数传递给cscript.exe运行的脚本,例如java使用exec("cscript //nologo script.vbs param1 param2"),VBS脚本中通过WScript.Arguments(index)访问。脚本处理后通过WScript.Echo打印结果,Java程序再通过Process的输入流接收此输出内容,从而完成参数传递及结果获取。
我希望VBS脚本执行后给出一个状态码,比如0表示成功,其他为失败,Java程序要怎么判断?
使用脚本输出的状态值并在Java中解析
因为cscript.exe本身不能直接设置进程的退出码,可以让VBS脚本通过WScript.Echo输出状态码字符串。Java读取Process的输入流得到这个状态码字符串后,转换为整数,即可判断成功与否。或者,在VBS中通过调用Windows脚本宿主对象的方法结束脚本时传递状态码,但这较为复杂,通常用输出内容判断更简便。