Vbscript 从我的脚本运行程序有困难

Vbscript 从我的脚本运行程序有困难,vbscript,Vbscript,我正在努力从VBScript.vbs文件运行程序。将该行替换为MsgBox效果很好,因此我知道它肯定是“open program”行(oShell.Run(“Release\My Application.exe”)) 无论如何,这是一个名为start.vbs的VBscript,它从USB驱动器的根目录运行。它检查是否安装了.net framework 4.0,如果安装了,则应运行My Application.exe(注意空格…可能会有所不同)My Application.exe位于名为Relea

我正在努力从VBScript.vbs文件运行程序。将该行替换为MsgBox效果很好,因此我知道它肯定是“open program”行(
oShell.Run(“Release\My Application.exe”)

无论如何,这是一个名为
start.vbs
的VBscript,它从USB驱动器的根目录运行。它检查是否安装了.net framework 4.0,如果安装了,则应运行
My Application.exe
(注意空格…可能会有所不同)
My Application.exe
位于名为
Release
的文件夹中

由于它是一个USB驱动器,我不能使用明确的驱动器号,例如:
oShell.run(“e:\Release\My Application.exe”)
,尽管尝试这样做似乎也不起作用。在cmd窗口中键入
“e:\Release\My Application.exe”
可以正常工作,并按预期运行程序

在vbscript中,它似乎什么都不做。有什么原因吗

这是我的密码:

Option Explicit
Dim oShell
Dim value

On Error Resume Next

Set oShell = CreateObject("WScript.Shell")
value = oShell.RegRead("HKLM\SOFTWARE\Microsoft\.NETFramework\Policy\v4.0\30319")

If Err.Number = 0 Then
    'Here I am struggling
    oShell.Run("Release\My Application.exe")
Else
    MsgBox("Version 4.0 of the .NET Framework is NOT installed.")
End If
我已经在这一行上面发表了评论,但这行不通


谢谢。

我不太确定这是否是最好的答案,但我试过了,效果很好,所以我将继续发表我的想法。 我只是使用explorer.exe作为中介,并能够打开该文件。 因此,你所坚持的路线应该是:

oShell.Run("explorer ""Release\My Application.exe""")
我尝试了它,如果它在不在系统路径中的文件夹中工作,并且能够打开可执行文件

注意:可能有更好的方法

更新:Thomas报告说,以下代码对他有效(这种方法更好),但两种方法背后的想法都是引用路径(正如您在命令提示符中所做的那样,因此路径中带有空格的文件名/文件夹得到正确解析):


你能看看奥希尔的工作目录是什么吗?我猜它找不到文件夹或你的应用程序。啊哈!你的回答给了我一个想法。当我在cmd.exe中键入命令时,它总是自动在命令周围加上引号,就像这样
“e:\Release\My Application.exe”
。我看到你是如何通过加倍来逃避引用的,所以我试了一下<代码>oShell.run(“'Release\My Application.exe”“”)工作正常:)很高兴听到这个消息。事实上,我试着不用探险家的东西,但它对我不起作用(可能我错过了什么,真丢脸)。我的想法是:1。检查问题是否与报价相关。2.检查问题是否与系统路径相关。我将编辑我的答案,以便其他人能够轻松理解它。
oShell.run("""Release\My Application.exe""")