无法将参数发送到通过 IExpress 转换为应用程序的批处理文件

Posted

技术标签:

【中文标题】无法将参数发送到通过 IExpress 转换为应用程序的批处理文件【英文标题】:Cannot send arguments to batch file converted to application via IExpress 【发布时间】:2018-12-26 18:47:41 【问题描述】:

我已经制作了一个包含个人数据的批处理文件,因此为了对其他人隐藏并发布它,我决定将其“加密”通过 IExpress 将其转换为exe

我的批处理文件名为prime.bat,它位于%userprofile%

这是我使用iexpress.exe 运行的步骤:

已运行iexpress.exe。 已选中Create new Self Extraction Directive file 已选择Extract files and run an installation command。 输入包标题 (Prime finder)。 已选择No prompt.。 已选择Do not display a license.。 选定的prime.bat 位于%userprofile% (C:\Users\%username%)。 在Install Program 中输入cmd /c prime.bat 并按原样离开Post Install Command (<None>)。 已选择Default (recommended)。 已选择No message。 输入C:\Users\username\prime.exe,但未选中以下任何框。 已选择No restart。 选择保存SED文件。

包创建成功!


由于批处理文件使用参数,它必须从 cmd 运行。当我从资源管理器中单击文件时,它正确打开。因为如果没有参数,我已经输入了一条错误消息,所以它抛出了预期的错误并以1 退出。如果我在 cmd 中只输入prime.exe,就会发生上述情况,并产生相同的输出。


但是,如果我再次从 cmd 运行文件,但 指定 参数,我会在新窗口中收到错误消息。由于我不会使用英语并且没有更改语言的权限,因此我将尝试翻译输出:

命令行选择中出现语法错误。

在命令后输入/?寻求帮助。

所以,我输入了prime.exe /?,然后出现了一个带有帮助的新窗口。我想我在iexpress.exe 选项中遗漏了一些东西。

【问题讨论】:

这个话题已经在 *** 上讨论过几次了,我几乎可以肯定,一旦它被 Iexpress 打包,你就不能将参数传递给 bat 文件。看看***.com/questions/28174386/… 【参考方案1】:

我使用以下方法解决了我的问题:

prime.exe /c:"cmd /c prime.bat numeric_arguments"

当您想将参数发送到 IExpress“编译”文件时应使用该选项,因为 /c 选项指定了新的安装命令。

【讨论】:

以上是关于无法将参数发送到通过 IExpress 转换为应用程序的批处理文件的主要内容,如果未能解决你的问题,请参考以下文章

无法将参数发送到 MySQL 存储过程窗口窗体

将 UIImageView 作为参数发送到 WCF 服务

将参数发送到引导模式窗口?

将参数发送到 Keras Tuner 模型构建器函数

如何将参数发送到嵌入式 Flutter Web 应用程序?

如何将参数发送到 HTTPService 调用以作为组件重用