如何使用动态命令行参数托管exe

时间:2013-09-04 05:16:07

标签: exe command-line-arguments nsis web-hosting

我有一个安装程序exe,它将channel_id参数作为命令行参数并使用它。 对于不同的下载和安装,channel_id可能不同。 我希望在Web上托管我的安装程序exe,以便在下载并执行(通过双击)时,channel_id会以某种方式传递给它,这相当于在cmd中使用channel_id运行安装程序exe,如下所示。 / p>

cmd> myinstaller.exe channel_id

怎么可能这样做?

3 个答案:

答案 0 :(得分:1)

您可以在文件名中包含您的参数。例如,代替setup.exe,将其命名为setup_XXXX.exe。然后从NSIS中,您可以阅读并解析$EXEPATH并从文件名中提取您的参数。

答案 1 :(得分:1)

您可以{。{3}} .exe文件。

答案 2 :(得分:0)

可能不是最可靠的方法(如果有的话),但你可以检查Zone.Identifier。我不知道在NSIS中本地使用这种方法,但您可以通过命令行解析结果来实现。

尝试

nsExec::ExecToLog 'more < "$EXEPATH:Zone.Identifier"'

nsExec::ExecToLog 'dir /r "$EXEPATH"'

我还发现了几个允许与Alternate Data Streams交互的Powershell(和VisualBasic)脚本,但我个人并不喜欢使用第三方脚本语言。