Windows批处理脚本启动行中的双引号

我已经看了已经提供的答案,但我仍然卡住了。 这是我目前有:

start "" "C:\Program Files (x86)\Spark\Spark.exe" echo Spark started 

这工作正常。 但是现在我想把parameter passing给客户端,客户端必须用引号括起来。 我可以在命令行上执行以下操作:

  "C:\Program Files (x86)\Spark\Spark.exe" "user=%USERNAME%&server=example.org" 

它启动时填入用户和服务器字段。

但是,当我尝试编辑批处理脚本来添加这些引用包装的参数,我得到各种各样的错误取决于我如何尝试添加双引号和其中,等等。

那么,如何添加一个引用包装的参数到开始行呢?

更新:

我不小心把它工作,但一直没有能够重现它。 但是这并不是完全正确的。 用户名仍然是空白的,但是服务器已经被填写了。我忘了提及我正在使用一个环境variables作为用户名: %USERNAME%

所以这可能是我的问题是,我不能引号和使用环境variables?

最终答案:

事实certificate,问题的一部分是我使用了错误的参数,但最初我一直在使用正确的,所以我没有注意到。 从命令行,我应该有:

  "C:\Program Files (x86)\Spark\Spark.exe" "username=%USERNAME%&server=example.org" 

所以从batch file中,下面的工作:

  start "" "C:\Program Files (x86)\Spark\Spark.exe" "username=%USERNAME%&server=example.org" echo Spark started 

非常感谢,并指出,为了让我得到正确的答案。

你试过这个吗?

 "C:\Program Files (x86)\Spark\Spark.exe" "\"user=foo&server=example.org\"" 

当我尝试一个简单的命令行测试和c + +程序(当我打印argv [1]参数时,我可以看到引号)。

更新:如果%USERNAME%中有空格,那么你需要像这样引用(见下文)。 我认为你可以删除其他报价。

 "C:\Program Files (x86)\Spark\Spark.exe" user="%USERNAME%"&server=example.org