使用参数将变量从 vbscript 传递到批处理文件

2024-05-18

请问如何将“inp”变量从这段 vb 传递到我的名为 job.bat 的批处理?确实,在从 job.bat 进行回显(echo %2)时,我注意到 inp 未正确传递。提示命令视图 inp而不是从 vbs 检索到的值。谢谢

For Each listElement In xmlDoc.selectNodes("document/Lists/list")
 msgbox "toto"
 inp=listElement.selectSingleNode("entry").text
 out=  listElement.selectSingleNode("output").text
 jeton=  listElement.selectSingleNode("token").text

 dim shell
 set shell=createobject("wscript.shell") 
 shell.run "job.bat ""a file"" **inp** "
 set shell=nothing 
 Next 

我想你要找的就是这个。

shell.run "job.bat ""argfile.ext"" " & inp

然而,作为安斯加尔·维彻斯 https://stackoverflow.com/a/15759171/1683264指出,这是一个潜在的严重安全漏洞,因为恶意制作的 XML 文件可以运行任意命令。要封装批处理文件参数并防止出现意外后果,请考虑切换到Shell.Application对象的Shell执行方法 http://ss64.com/vb/shellexecute.html.

For Each listElement In xmlDoc.selectNodes("document/Lists/list")

    msgbox "toto"
    inp = listElement.selectSingleNode("entry").text
    out = listElement.selectSingleNode("output").text
    jeton = listElement.selectSingleNode("token").text

    set shell=CreateObject("Shell.Application") 
    shell.ShellExecute "job.bat", """a file"" " & inp, "path\to\batfile\", "runas", 1
    set shell=nothing 

Next 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用参数将变量从 vbscript 传递到批处理文件 的相关文章

随机推荐