我有一个bat脚本,它将一个字符串作为命令行参数来确定要复制的配置文件。对于变量赋值,蝙蝠代码非常简单(在下面解释),并且当我单独运行它时,它会按照预期的方式使用任何命令行参数。
@ECHO OFF
setlocal enabledelayedexpansion
set var=%1%
if "%var%" == "" (
echo Argument missing
EXIT 1
)
当我尝试使用IExpress创建一个使用此bat文件作为安装程序的自解压存档时,问题就出现了。我还没有弄清楚如何指出给予可执行文件的命令行参数应该传递给安装程序(bat脚本)。基本上,我希望能够运行:
myiexpressexecutable.exe arg1
从Windows命令行并让bat安装程序分配" var"无论" arg1"的价值如何是
我不确定这是不是因为我不知道正确的语法,或者IExpress不允许这样做。我已尝试将IExpress向导中的安装程序设置为:
cmd.exe /c zabbix_install.bat %1
和
cmd.exe /c zabbix_install.bat %*
在这两种情况下,如果我尝试将参数传递给生成的可执行文件,我会得到消息"命令行操作语法错误。输入/?寻求帮助"。当我不传递任何参数时,底层的bat脚本会运行,但会将%1或%*视为文字字符串"%1"或"%*"。
当我将iexpress中的安装程序设置为:
时cmd.exe /c zabbix_install.bat
我得到了相同的"命令行操作语法错误"当我包含可执行文件的命令行参数时的消息。当我在没有任何参数的情况下运行此exe时,底层批处理脚本将失败,因为var是一个空字符串。
任何人都可以帮我弄清楚我在设置这个exe的安装程序时遇到了什么问题吗?或者有人知道IExpress是否只是不能创建带有命令行参数的exes吗?
由于
答案 0 :(得分:0)
如果您使用
myiexpressexecutable.exe /?
它告诉你一些有关参数的信息。 将iexpress中的程序设置为
cmd.exe /c zabbix_install.bat
然后使用以下参数运行已编译的文件:
myiexpressexecutable.exe /c:" cmd.exe /c zabbix_install.bat arg1"
注意引号和cmd.exe开头之间的空格。文档说它应该像这样运行但它可能是不正确的。尝试没有空间。