如何使用 Inno Setup 安装程序向批处理文件 运行 提供输入?

How to provide an input to a batch file ran using Inno Setup installer?

要安装我们的程序,我们需要 运行 批处理文件(它会安装整个应用程序),它会提示用户一些问题,我们会以 "yes/no" 格式提供答案。我正在编写一个脚本,并在脚本中调用该批处理文件来安装整个程序。现在我想做的是在安装过程中隐藏控制台并通过脚本提供所有答案。

最简单的解决方案是修改批处理文件以执行您希望它执行的操作,而无需询问。


如果您不能这样做(例如,如果批处理文件是第 3 方),您必须从文本文件重定向其输入。

创建包含答案的文本文件(例如 answers.txt):

y
n
y
y

创建一个包装批处理文件,运行将您的安装批处理文件重定向到答案文件 (wrapper.bat) 的输入:

@echo off
install.bat < answers.txt

安装所有文件并让 Inno Setup 运行 wrapper.bat:

[Files]
Source: "install.bat"; DestDir: "{app}"
Source: "wrapper.bat"; DestDir: "{app}"
Source: "answers.txt"; DestDir: "{app}"

[Run]
Filename: "{app}\wrapper.bat"; Flags: runhidden