带有VBscript空格的Cmd命令

时间:2017-12-12 13:58:45

标签: cmd vbscript

我正在尝试通过命令行使用VBScript执行SAS代码。但是,我遇到了将命令从VBScript正确传递到命令行的问题。我很确定这是一个正确使用引号和chr(34)的问题,但我无法弄明白。

所以我想在命令行中运行follow命令:

"C:\Program Files\SAS 9.4\sas.exe" -SYSIN "C:\Program Files\test.sas"

我尝试过像

这样的东西
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "cmd.exe /K copy ""C:\Program Files\SAS 9.4\sas.exe"" -SYSIN ""C:\Program Files\test.sas"" ", 1, True
Set oShell = Nothing

但是我在命令行中遇到了无效的语法错误。有什么好主意吗?

1 个答案:

答案 0 :(得分:1)

CMD /K期待一个论点。如果参数包含空格,则必须引用该参数。所以完整的命令就像是:

oShell.run "cmd.exe /K "" ""C:\Program Files\SAS 9.4\sas.exe"" -SYSIN ""C:\Program Files\test.sas"" "" ", 1, True

通常,人们不得不担心嵌套的引用/转义,但是/ C和/ K开关在引用的工作方式上很特殊(CMD /?解释了细节)。如果它看起来像一个带引号的参数,CMD会自动忽略其中的任何引号。