无法将参数发送到通过 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 转换为应用程序的批处理文件的主要内容,如果未能解决你的问题,请参考以下文章