从相对路径

时间:2015-07-22 13:02:35

标签: windows batch-file vbscript

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

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

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

  • 快捷方式:不起作用,因为它们不允许相对路径。
  • BAT文件:无法正常工作,因为它始终启动命令行窗口。
  • VBS文件:无法让它工作。

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

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

但这在第2行给出了"cannot find path"错误。

知道怎么做吗? (我来自Linux,使用shell脚本或软链接这样的东西很容易)。

2 个答案:

答案 0 :(得分:2)

更改

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

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

\.bin.bin中查找CurrentDrive:\。有关删除()的信息,请参阅here

引用:

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

(VBScript逃脱“是”“)

答案 1 :(得分:1)

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

strExeName = "app 1.exe"

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

编辑:

@ Ekkehard的解决方案也应该有用。你只需要用双引号括起任何带空格的路径。使用"""" & strPath & """"Chr(34),如上所示。