繁体   English   中英

将'='符号作为参数传递到bat文件

[英]passing the '=' sign as a parameter to a bat file

我正在尝试使用以下代码从bat文件启动exe

start "" "abc.exe" %1 %2 %3 %4

我的第一个参数(%1)是一个加密的身份验证ID,此ID末尾包含两个=唱歌

我的问题是,每当我传递%1参数时,bat文件就会丢弃这两个=符号。

结果,我无法按预期运行该应用程序。

请给我一些如何解决这个问题的想法

-朗加纳

如果您启动一个exe程序,它应该能够解析其所有命令。

因此,您应该确保您的参数确实包含预期的数据。

您可以尝试使用硬编码参数。

start "" "abc.exe" a$deD343aD5== param2 param3 param4

批处理将以下字符视为参数定界符: <space> <tab> , ; = <0xFF> <space> <tab> , ; = <0xFF> 请注意, <0xFF>是不间断的空格。

将任何定界符作为参数值的一部分的唯一方法是将参数括在双引号中。

调用者应将值括在引号中。 因此,如果第一个参数应为a $ deD343aD5 ==,则必须将批处理脚本调用为

scriptName "a$deD343ad5==" param2 param3 param4

如果您不想将引号传递给您的exe,则可以在批处理脚本中使用~修饰符来修剪包围的引号。 但是您必须小心,因为< > & |类的特殊字符 如果未引用或转义它们将导致问题。

::This will preserve any enclosing quotes around each parameter
start "" "abc.exe" %1 %2 %3 %4

::This will strip any enclosing quotes around each parameter (if they exist)
start "" "abc.exe" %~1 %~2 %~3 %~4

暂无
暂无

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

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