在通过Iexpress创建的exe文件中使用命令行参数

问题描述:

我有一个bat脚本,它将一个字符串作为命令行参数来确定要复制哪些配置文件。蝙蝠代码对于变量赋值来说非常简单(下面解释),并且它可以像预期的那样工作,当我自己运行它时可以使用任何命令行参数。在通过Iexpress创建的exe文件中使用命令行参数

@ECHO OFF 
setlocal enabledelayedexpansion 
set var=%1% 
if "%var%" == "" (
    echo Argument missing 
    EXIT 1 
) 

问题是当我尝试使用IExpress程序创建使用该bat文件作为安装程序的自解压压缩文件。我一直无法弄清楚如何指示给予可执行文件的命令行参数应该传递给安装程序(bat脚本)。从本质上讲,我希望能够运行:

myiexpressexecutable.exe arg1 
从Windows命令行

,并有蝙蝠安装程序分配“变种”到任何的“ARG1”的值。

我不确定是否仅仅是我不知道正确的语法,或者IExpress不允许这样做。我试着在IExpress向导既设置安装程序:

cmd.exe /c zabbix_install.bat %1 

cmd.exe /c zabbix_install.bat %* 

在这两种情况下,如果我尝试将参数传递到生成的可执行文件,我得到的消息“命令行操作语法错误,键入/?for帮助“。当我没有参数传递时,底层bat脚本会运行,但会将%1或%*视为文字字符串“%1”或“%*”。

当我在IExpress程序设置安装程序只是:

cmd.exe /c zabbix_install.bat 

我得到同样的“命令行操作的语法错误”的消息时,我包括可执行的命令行参数。当我运行这个没有任何参数的exe时,底层的批处理脚本会失败,因为var是一个空字符串。

任何人都可以帮助我找出我在做这个exe的安装程序设置错误吗?或者是否有人知道IExpress是否仅仅不能创建带有命令行参数的exes?

感谢

如果使用

myiexpressexecutable.exe /? 

它会告诉你有关参数的一些信息。 在IExpress程序设定程序

cmd.exe /c zabbix_install.bat 

,然后用类似的参数运行已编译的文件:

myiexpressexecutable.exe /c:" cmd.exe /c zabbix_install.bat arg1" 

通知的报价和CMD.EXE的开始之间的间隔。文档说它应该像这样运行,但它可能不正确。尝试没有空间。