从相对path启动可执行文件

我正在构build一个可重定位的目录,其中包含多个可执行文件(以及其他文件)。 树看起来像这样:

root +-- bin +-- app 1.exe +-- app 2.exe +-- config +-- log app 1.??? app 2.??? 

注意到??? 在根文件? 我希望那些在bin启动应用程序,但是使用root作为工作目录。 我尝试了几件事情:

  • 快捷键:没有工作,因为他们不允许相对path。
  • BAT文件:没有工作,因为它总是启动一个命令行窗口。
  • VBS文件:无法让它工作。

关于VBS文件,这是我现在所拥有的:

 Set oShell = WScript.CreateObject("WScript.Shell") oShell.Run(".\bin\app 1.exe")` 

但是这给了我一个"cannot find path"错误第2行。

任何想法如何做到这一点? (我来自Linux,使用shell脚本或softlink,这样的东西很容易死掉)。

更改

 oShell.Run("\.bin\app1.exe") 

 oShell.Run ".\bin\app1.exe" 

\.binCurrentDrive:\查找.bin 。 看到这里删除()。

用引号:

 oShell.Run """.\bin\app1.exe""" 

(VBScript的“是”的转义)

在调用Run()之前,可以使用Shell对象的CurrentDirectory属性来设置当前的工作目录:

 strExeName = "app 1.exe" Set oShell = WScript.CreateObject("WScript.Shell") oShell.CurrentDirectory = "bin" oShell.Run Chr(34) & strExeName & Chr(34) 

编辑:

Ekkehard的解决方案也应该有效。 你只需要用双引号括住空格。 使用"""" & strPath & """"Chr(34) ,如上所示。