2017-06-17 320 views
0

我一直在写一个可以调用可执行文件的VBScript文件。卡住字符串文字中双引号的语法。系统找不到指定的文件 - 从vbscript运行可执行文件

这条线应该正确地编写调用可执行行:

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

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

试图让上面的行写入VBS有以下:

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

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

但是,因为它得到系统的错误找不到指定文件,而是将其写入:

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

你试过用'Ch​​r(34)'来得到''''“吗?尝试''WshShell.Run“&Chr(34)&”C:\ Users \ John Doe \ test.exe“&Chr(34)' –

+0

那么,您遇到了什么问题?你也可以说你得到正确的结果........尝试像'WshShell.Run“”“C:\ Users \ John Doe \ test.exe”“”',在这里使用三个双引号! – GTAVLover

+0

我尝试了Chr(34),但没有奏效。我遇到的问题让我澄清。当我用三个双引号在vbshel​​l内部执行命令时,它按预期工作。问题:我有一个VBA宏函数在Word中的父代码,我试图让宏函数将vbscript文件写入文件系统(与VBA完全分离),以便它写下了这样一行: 'WshShell.Run“”“”C:\ Users \ John Doe \ test.exe“”“'' – Robert

回答

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 & """"""" " 
'          ^^^^    ^^^^ 
相关问题