VBscript中带有空格的Cmd命令

VBscript中带有空格的Cmd命令,cmd,vbscript,Cmd,Vbscript,我正试图通过命令行使用VBScript执行SAS代码。但是,我在将命令从VBScript正确地传递到命令行时遇到问题。我很确定这是一个正确使用引号和chr(34)的问题,但我无法理解 因此,我想在命令行中运行以下命令: "C:\Program Files\SAS 9.4\sas.exe" -SYSIN "C:\Program Files\test.sas" 我试过类似的方法 Set oShell = WScript.CreateObject ("WScript.Shell") oShell.r

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

因此,我想在命令行中运行以下命令:

"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

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

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

会自动忽略里面的任何引号。哦,是的,我在谷歌搜索时被弄糊涂了。因此,我要执行的命令就是
oShell.run“cmd.exe/K”“^”C:\Program Files\SAS 9.4\SAS.exe^”“-SYSIN^”“C:\Program Files\test.SAS^”“,1,True
,因为这应该在命令行中运行test.SAS文件。但是,上述方法不起作用。我得到一个关于``的错误“C:\Program'`我认为这表明引用不起作用:-/啊,对不起,我自己弄错了
CMD/K
在引号方面有特殊的行为,这在CMD的其他地方是看不到的,我已经忘记了。我已经更正了原来的答案。效果很好。非常感谢-现在我的工作会简单得多;-)