2010-06-07 125 views
1

运行,我尝试从VB运行GO.BAT但是当我运行该脚本,我得到:无法找到特定文件VB脚本要.bat文件从VB

但是从CMD窗口文件go.bat存在。什么问题?

Dim MyShell 

Dim shell_cmd 

    shell_cmd = "C:\Program Files\dir1\dir2\wizard\go.bat" 

    set MyShell = CreateObject("WScript.Shell") 

    MyShell.Run shell_cmd, 1, 1 

从cmd窗口,如果

C:\Program Files\dir1\dir2\wizard>go.bat 
+0

可能重复http://stackoverflow.com/questions/1340355/launch-programs-whose-path-contains-spaces ) – 2015-03-12 08:09:35

回答

3

您的批处理文件的完整路径包含空格,所以你需要把它们放在双引号,像这样:

shell_cmd = """C:\Program Files\dir1\dir2\wizard\go.bat""" 

shell_cmd = Chr(34) & "C:\Program Files\dir1\dir2\wizard\go.bat" & Chr(34) 
[启动程序,而其路径包含空格(的
+0

嗨THX分配它的工作很好 THX再次 – yael 2010-06-07 08:20:27

0

不相信你也知道,但在VB中,你可以使用Shell功能:

http://msdn.microsoft.com/en-us/library/xe736fyk(VS.71).aspx

(似乎比你容易”重新使用)

我不知道为什么你得到这个消息,但你所提到的两个路径其实都是不同的:

C:\Program Files\dir1\dir2\wizard\go.bat 
C:\Program Files\dir1\dir2\wizard>go.bat 
           ^
+1

第二件事是从命令提示符窗口,显然,根据问题,所以工作目录是'C:\ Program Files \ dir1 \ dir2 \ wizard',他们从那里执行'go.bat'。 – icktoofay 2010-06-07 08:14:49

+1

不是它们是一样的 C:\ Program Files \ dir1 \ dir2 \ wizard> go.bat go.bat在向导目录下 – yael 2010-06-07 08:15:14