Batch file 通过'=';作为bat文件的参数进行签名

Batch file 通过'=';作为bat文件的参数进行签名,batch-file,argument-passing,Batch File,Argument Passing,我正在尝试使用以下代码从bat文件启动exe start "" "abc.exe" %1 %2 %3 %4 我的第一个参数(%1)是一个加密的身份验证id,该id在末尾包含两个=符号 我的问题是每次我传递%1参数时,这两个签名的=都会被bat文件删除 因此,我无法按预期运行应用程序 请告诉我如何解决这个问题 --Rangana如果启动exe程序,它应该能够解析所有命令 因此,您应该确保您的参数确实包含预期的数据 您可以尝试使用硬编码参数 start "" "abc.exe" a$deD343a

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

start "" "abc.exe" %1 %2 %3 %4
我的第一个参数(%1)是一个加密的身份验证id,该id在末尾包含两个=符号

我的问题是每次我传递%1参数时,这两个签名的=都会被bat文件删除

因此,我无法按预期运行应用程序

请告诉我如何解决这个问题


--Rangana

如果启动exe程序,它应该能够解析所有命令

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

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

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

批处理将以下字符视为参数分隔符:
,;=。请注意,
是一个不间断的空格

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

由调用方将值括在引号中。因此,如果第一个参数应该是$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

您真的在批处理中使用这一行来启动abc.exe
start”“”abc.exe“%1%2%3%4
吗?还是使用像
start”“”abc.exe“%param1%%param2%%param3%%param4%”这样的行?如果您真的使用
%1
,它来自何处,是否包含
=
?我使用它就像开始“”abc.exe“%1%2%3%4,它来自一个小程序,我试图从web应用程序调用一个C应用程序,这是一个单点登录案例。我从小程序调用bat文件。bat文件包含上述代码。