带参数的 Shell.Run

Shell.Run with arguments

提问人:user2567674 提问时间:7/10/2013 最后编辑:Ansgar Wiechersuser2567674 更新时间:11/15/2022 访问量:25627

问:

我正在尝试使用 VBS 运行一个程序(带参数)。但是,我的退出代码 = 87(找不到指定的文件)。/configShell.Run

我尝试过的第一段代码:

strCommand = """c:\Program Files\Test\launch.exe""" & " /config:C:\sample.xml"
intExit = objShell.Run(strCommand, 0, True)

第二段代码:

Dim FileExe, Argum
FileExe = "%ProgramFiles%\Test\launch.exe"
Argum = "/config:C:\sample.xml"

RunMe FileExe, Argum

Function RunMe(FileExe, Argum)
    Dim Titre, ws, Command, Exec
    Titre = "Execution avec argument"
    Set ws = CreateObject("WScript.Shell")
    command = "cmd /c "& qq(FileExe) & " " & Argum &" "
    Msgbox command, 64, Titre
    Exec = ws.Run(command, 0, True)
End Function

Function qq(str)
    qq = chr(34)& str &chr(34)
End Function
VBScript 参数 引用

评论

0赞 Vishnu Prasad Kallummel 7/10/2013
试试这个 - stackoverflow.com/questions/16087470/...
1赞 Ansgar Wiechers 7/10/2013
这些报价对我来说看起来还不错。此外,如果找不到可执行文件,脚本应终止并显示错误80070002。该方法不应返回任何内容。你确定它存在吗?RunC:\sample.xml
0赞 trlkly 8/18/2017
只是为了检查,你是故意隐藏程序,对吗?参数中的 0 使窗口不可见。我会首先尝试将其设置为 1,在那里它是可见的,只有在您确定它有效时才将其更改为 0。这也可能使它成为您可以看到任何错误的地方。
0赞 trlkly 8/18/2017
(刚刚意识到这是一个老问题。

答:

-1赞 user3500176 11/15/2022 #1

当然,是的,Run 命令应该返回一些东西。 我来这里是因为我对第二个参数犹豫不决。我在那里找到了它:Windows 脚本主机运行方法的文档,在 vbsedit.com

Shell.Run 返回它执行的命令行的返回值,因此在本例中,您将在 Test 文件夹的 Launch 程序文档中找到返回代码的表示。(测试意味着什么......

当然,如果 Launch 程序尊重有关代码含义的约定,这将简化理解,但对于测试,您并不总是输入这些细节。可能正因为如此,87 对我来说什么都不是。缺少文件是一个非常经典的错误,代码为 2。但也许 2 将用于数据文件。