Vbscript WshShell.在命令行参数中使用空格运行

Vbscript WshShell.在命令行参数中使用空格运行,vbscript,Vbscript,从vbscript中,我试图获得要展开的用户配置文件目录,并使用命令行参数运行可执行文件。似乎是命令行参数中的空格导致了问题。我很接近,但无论我怎么尝试,我似乎都无法得到它 这项工作: WshShell.Run """%UserProfile%\test.exe""" 我试图做的事情不起作用: WshShell.Run """%UserProfile%\test.exe 8.8.8.8 8989 -e c

从vbscript中,我试图获得要展开的用户配置文件目录,并使用命令行参数运行可执行文件。似乎是命令行参数中的空格导致了问题。我很接近,但无论我怎么尝试,我似乎都无法得到它

这项工作:

WshShell.Run """%UserProfile%\test.exe"""
我试图做的事情不起作用:

WshShell.Run """%UserProfile%\test.exe 8.8.8.8 8989 -e cmd.exe"""

我收到一个错误“系统找不到指定的文件。

您可以在执行任何变量之前使用
Wscript.Echo
MsgBox

Wscript.Echo chr(34) & CreateObject("wscript.shell").ExpandEnvironmentStrings("%UserProfile%\test.exe") & chr(34) & " 8.8.8.8 8989 -e cmd.exe"

您可以在执行任何变量之前使用
Wscript.Echo
MsgBox

Wscript.Echo chr(34) & CreateObject("wscript.shell").ExpandEnvironmentStrings("%UserProfile%\test.exe") & chr(34) & " 8.8.8.8 8989 -e cmd.exe"
第二个示例中出现错误的原因是,文字引号仅用于包装包含空格的文件路径,因此您应该使用

WshShell.Run """%UserProfile%\test.exe"" 8.8.8.8 8989 -e cmd.exe"
这相当于写作

“%UserProfile%\test.exe”8.8.8.8 8989-e cmd.exe
在控制台窗口的命令提示下(注意,文字引号的位置)


有用的链接
第二个示例中出现错误的原因是,文字引号仅用于包装包含空格的文件路径,因此您应该使用

WshShell.Run """%UserProfile%\test.exe"" 8.8.8.8 8989 -e cmd.exe"
这相当于写作

“%UserProfile%\test.exe”8.8.8.8 8989-e cmd.exe
在控制台窗口的命令提示下(注意,文字引号的位置)


有用的链接

您不需要在整个命令周围加上文字引号,只需要在任何带空格的路径上加上引号,请尝试-
WshShell.Run”“%UserProfile%\test.exe”“8.8.8 8989-e cmd.exe”“
。这相当于在命令窗口中执行
%UserProfile%\test.exe“8.8.8.8989-e cmd.exe
。非常感谢,伙计。这正是我想要的。我可以将其标记为分辨率,也可以将其标记为分辨率。您不需要在整个命令周围使用文字引号,只要在任何带空格的路径上使用,请尝试-
WshShell.Run”“%UserProfile%\test.exe”“8.8.8 8989-e cmd.exe”“
。这相当于在命令窗口中执行
%UserProfile%\test.exe“8.8.8.8989-e cmd.exe
。非常感谢,伙计。这正是我想要的。我可以把它标记为分辨率,你也可以。为什么你坚持
Chr(34)
可以呢?就个人而言,这要可读得多。
Wscript.Echo”“&CreateObject(“Wscript.shell”).ExpandEnvironmentStrings(“%UserProfile%\test.exe”)&“8.8.8.8 8989-e cmd.exe”
。当
可以的时候,你为什么坚持使用
Chr(34)
?就个人而言,这要可读得多
Wscript.Echo“”&CreateObject(“Wscript.shell”).ExpandEnvironmentStrings(“%UserProfile%\test.exe”)&“8.8.8.8989-e cmd.exe”