系统找不到指定的文件 - 从vbscript运行可执行文件

时间:2017-06-17 16:37:21

标签: vba vbscript word-vba

我坚持写一个可以调用可执行文件的VBScript文件。坚持使用字符串文字中双引号的语法。

该行应该正确写入调用可执行文件的行:

Print #PayLoadFile, "     WshShell.Run """ & exePath & """ "

exePath是可执行的可变保持路径,它是正确的。

尝试使用以下内容获取上面的行以写入vbs:

WshShell.Run """C:\Users\John Doe\test.exe"""

当我在可执行文件之间运行VBScript手动编辑"""的文件时,我得到了正确的结果。

但相反它写入它因为它得到系统的错误找不到指定的文件:

WshShell.Run "C:\John Doe\test.exe" 

1 个答案:

答案 0 :(得分:0)

在VBScript中,必须对字符串文字中的双引号进行转义,因为字符串文字本身必须用一对双引号括起来。逃避是通过加倍双引号来完成的。因此VBA声明

Print #PayLoadFile, "     WshShell.Run """ & exePath & """ "
'                                      ^^               ^^    these double quotes

使用一组双引号中的路径创建一个VBScript语句:

WshShell.Run "C:\Users\John Doe\test.exe" 
'            ^                          ^                     become these double quotes

要在VBScript文件中获取所需的两对双引号(将把路径放在shell的双引号中),您需要在VBA语句中再添加8个双引号:

Print #PayLoadFile, "     WshShell.Run """"""" & exePath & """"""" "
'                                        ^^^^               ^^^^