我看过已经提供的答案,但我仍然被卡住了。这是我现在拥有的:
start "" "C:\Program Files (x86)\Spark\Spark.exe"
echo Spark started
这很好用。但现在我想将参数传递给客户端,客户端必须用引号括起来。我可以在命令行上执行以下操作:
"C:\Program Files (x86)\Spark\Spark.exe" "user=%USERNAME%&server=example.org"
它启动时填写了用户和服务器字段。
但是当我尝试编辑批处理脚本以添加这些引用包装的参数时,我会遇到各种错误,具体取决于我如何尝试添加双引号以及等等。
那么如何在起始行添加引用包装参数?
我不小心让它上班,但无法重现它。但它没有完全正确。用户名仍然是空白,但服务器已填写。我忘了提到我正在使用环境变量作为用户名:%USERNAME%
所以可能是我的问题是我无法转义引号并使用环境变量?
事实证明,问题的一部分是我使用了错误的参数,但最初我一直在使用正确的参数,所以我没有注意到。从命令行,我应该:
"C:\Program Files (x86)\Spark\Spark.exe" "username=%USERNAME%&server=example.org"
以及批处理文件中的以下内容如下:
start "" "C:\Program Files (x86)\Spark\Spark.exe" "username=%USERNAME%&server=example.org"
echo Spark started
非常感谢并指出dcp让我找到了正确的答案。
答案 0 :(得分:1)
你试过这个吗?
"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