繁体   English   中英

Windows Batch脚本开始行中的双引号

[英]Double-Quotes in start line of Windows Batch script

我已经查看了已经提供的答案,但仍然遇到问题。 这是我目前拥有的:

 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为我提供了正确的答案。

你有尝试过吗?

"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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM