【问题标题】:Cannot send arguments to batch file converted to application via IExpress无法将参数发送到通过 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 选项中遗漏了一些东西。

【问题讨论】:

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

标签: batch-file iexpress


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2020-05-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多