0

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

cmd> myinstaller.exe channel_id.

怎么可能这样做?

4

3 回答 3

1

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

于 2013-09-04T15:33:06.470 回答
1

您可以将数据附加到.exe 文件的末尾。

于 2013-09-04T19:19:34.483 回答
0

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

尝试

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

或者

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

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

于 2013-09-04T06:43:59.390 回答