WshShell.Run来自UserProfile变量目录的可执行文件

时间:2017-06-19 14:35:44

标签: vbscript

我以为我有这个正确但我没有。我正在尝试从用户配置文件目录中调用可执行文件。变量未正确扩展。这是代码示例:

userProfilePath = oShell.ExpandEnvironmentStrings("%UserProfile%")
exePath = userProfilePath + "\test1.exe"
Set WshShell = WScript.CreateObject(""WScript.Shell"")
WshShell.Run """ & exePath & """

当VBScript运行时,它无法正确显示(“C:\ Users \ John Doe \ test1.exe”)的路径。关于如何正确使用变量和字符串我缺少什么?

1 个答案:

答案 0 :(得分:2)

您的报价不正确。 WScript.Shell必须在一对双引号中,如果要在变量值之前和之后添加双引号,则需要使用Chr(34)

WshShell.Run Chr(34) & exePath & Chr(34)

或4个双引号的序列:

WshShell.Run """" & exePath & """"

连续4次双引号的原因是VBScript字符串文字必须以双引号开头和结尾,并且字符串文字中的嵌套双引号必须通过加倍来转义(因此它们不会过早地终止串)。您的文字""" & exePath & """定义了文字文本" & exePath & ",而不是两个double qoutes之间变量exePath的值。

话虽如此,在您的特定情况下,您不需要整个连接shebang,因为Run方法可以自己处理环境变量。以下代码应满足您的需求:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run """%USERPROFILE%\test1.exe"""