【发布时间】:2019-10-19 08:15:10
【问题描述】:
在运行带有空格的路径的 WScript.Shell Run 时收到错误消息。
我尝试了几种导致相同错误的不同变体。
CreateObject("WScript.Shell").Run """Program Files\scripts\exe\PsExec64.exe -accepteula -realtime -d c:\windows\system32\RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 264"" ", 0, True
CreateObject("WScript.Shell").Run "Program Files\scripts\exe\PsExec64.exe -accepteula -realtime -d c:\windows\system32\RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 264", 0, True
CreateObject("WScript.Shell").Run "'Program Files\scripts\exe\PsExec64.exe -accepteula -realtime -d c:\windows\system32\RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 264'", 0, True
CreateObject("WScript.Shell").Run("Program Files\scripts\exe\PsExec64.exe -accepteula -realtime -d c:\windows\system32\RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 264", 0, True)
我知道路径中的空格导致错误,我只是无法正确地用引号括起来。
【问题讨论】:
-
您正在调用相对路径(以
Program Files\scripts\...开头。尝试通过前缀C:\来完全限定路径(如果这是您的驱动器)。您还必须使用此语法 @ 987654329@ -
必须删除我评论中的最后一个
"。不幸的是,我不能再删除它了。 -
呃:|你是神,谢谢。我已经看了好几个小时了,你在几分钟内就把它修好了。我总是觉得在这里发帖很愚蠢,因为它通常很愚蠢。
-
使用引号总是很棘手。在我几乎所有的 vbscript 中,我都包含一个双引号变量的函数。只要您正确识别它们,它就会有所帮助。
Function dq(ByVal s) dg = Chr(34) & s & Chr(34) End Function(cmets 中的代码看起来很垃圾,抱歉)
标签: vbscript wsh hta wscript.shell