WshShell.Run 命令行参数中有空格
WshShell.Run with spaces in command line params
我试图通过 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"
因为第二个例子中错误的原因是因为文字引号只需要将包含空格的文件路径换行,所以你的行应该是;
WshShell.Run """%UserProfile%\test.exe"" 8.8.8.8 8989 -e cmd.exe"
相当于写作
"%UserProfile%\test.exe" 8.8.8.8 8989 -e cmd.exe
在控制台的命令提示符处 window(注意,文字引号的位置)。
有用的链接
- Answer to: About using Double quotes in Vbscript
我试图通过 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"
因为
WshShell.Run """%UserProfile%\test.exe"" 8.8.8.8 8989 -e cmd.exe"
相当于写作
"%UserProfile%\test.exe" 8.8.8.8 8989 -e cmd.exe
在控制台的命令提示符处 window(注意,文字引号的位置)。
有用的链接
- Answer to: About using Double quotes in Vbscript