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

标签 windows batch-file cmd exe iexpress

我有一个bat 脚本,它采用单个字符串作为命令行参数来确定要复制哪些配置文件。 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 是否只是无法创建采用命令行参数的 exe?

谢谢

最佳答案

如果您使用

myiexpressexecutable.exe /? 

它告诉你一些有关参数的信息。 将iexpress中的程序设置为

cmd.exe /c zabbix_install.bat

然后运行编译后的文件,参数如下:

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

注意引号和 cmd.exe 开头之间的空格。文档说它应该像这样运行,但它可能不正确。也尝试不加空格。

关于windows - 在通过 Iexpress 创建的 exe 文件中使用命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46772330/

相关文章:

batch-file - xcopy 通配符源文件夹名称到目标

windows - 尝试构建时无法识别 Cordova FirefoxOS 构建文件夹

c++ - IPortableDeviceManager::GetDevices 返回 0 个设备

windows - 打印文件(记事本) 打印文档中没有出现文件名

java - 当没有这样的类时,如何使用 ant/javac 编译 "import pack.*"?

batch-file - 如何防止来自del * .txt的 “Could Not Find”错误消息?

python - 如何使用 Python 访问命令提示符历史记录

windows - 传递参数和文件名?

windows - 从 winform 运行 Windows 服务

c++ - 如果我们启动管理员需要的应用程序,则不会分配 .bat 中定义的环境变量