Scripting 可以操作数据的安装程序(安装生成器)/运行可以为其操作数据的脚本?

Scripting 可以操作数据的安装程序(安装生成器)/运行可以为其操作数据的脚本?,scripting,installation,inno-setup,Scripting,Installation,Inno Setup,我正在寻找一个安装程序(setup builder),它可以在运行实际的安装文件(要安装的主.exe文件)之前操作数据或基本上运行一个外部脚本来操作硬盘上的一些数据,以便方便使用一些自定义的用户数据,使其与较新版本的软件兼容(待安装) 显然,将脚本与主.exe文件合并不是一个选项 我看过像Inno Setup和CreateSinstall这样的软件包,但我似乎找不到让它们完成任务的方法 任何帮助都将不胜感激 操纵数据或基本上运行外部脚本来操纵某些 硬盘上的数据 Inno安装程序可以做到这一点-例

我正在寻找一个安装程序(setup builder),它可以在运行实际的安装文件(要安装的主.exe文件)之前操作数据或基本上运行一个外部脚本来操作硬盘上的一些数据,以便方便使用一些自定义的用户数据,使其与较新版本的软件兼容(待安装)

显然,将脚本与主.exe文件合并不是一个选项

我看过像Inno Setup和CreateSinstall这样的软件包,但我似乎找不到让它们完成任务的方法

任何帮助都将不胜感激

操纵数据或基本上运行外部脚本来操纵某些 硬盘上的数据

Inno安装程序可以做到这一点-例如,处理INI文件、文本文件、配置或XML文件…或执行批处理文件(.bat),这些文件可以执行SQL等脚本…)


请更具体地说明您需要什么。

使用Inno安装程序,您甚至可以将脚本合并到主安装程序.exe文件中,因为Inno安装程序具有内置的Pascal脚本功能

它的文件操作功能相当有限,但也许它足以满足您的需要

非常简单的例子:

[代码]
过程初始化设置:布尔值;
变量
文件名:字符串;
S:翻译;
开始
{在用户的“文档”文件夹中将记录前置到file.txt}
文件名:=ExpandConstant(“{userdocs}\file.txt”);
如果文件存在(文件名)并且
LoadStringFromFile(文件名,S),然后
开始
S:=
'另一行-添加到'+
GetDateTimeString('dddddtt',#0,#0)+#13#10+
s
SaveStringToFile(文件名,S,False);
结束;
结束;
参考资料:


如果不能或不想使用pascal脚本,可以构建自定义应用程序,将其嵌入安装程序,并在安装程序启动时运行

[文件]
; 将可执行文件嵌入安装程序,
; 但不要安装它(dontcopy标志)
来源:“preinstall.exe”;标志:dontcopy
...
[代码]
过程初始化设置:布尔值;
变量
结果代码:整数;
开始
{将可执行文件解压缩到临时文件夹}
提取临时文件('preinstall.exe');
{运行它}
结果:=
Exec(ExpandConstant({tmp}\preinstall.exe'),
'','',SW_隐藏,EWWAIT未过滤,结果代码);
{如果运行失败或可执行文件指示错误,请使用}
{非零退出代码,中止安装}
如果(不是结果)或(结果代码0),则
开始
MsgBox('准备安装时出错。正在中止',mbError,MB_OK);
出口
结束;
{此处的其他初始化}
结束;

我基本上需要在硬盘上找到一些文件(这些文件的位置取决于用户运行的操作系统),复制这些文件,以二进制方式打开它们,并可能更改/收集一些信息。如果inno安装程序能够在安装之前运行python脚本,那么上述所有工作都会容易得多。@MartinPrikryl我想我已经能够搞乱你的最新代码片段,并使一些东西工作起来了!也许现在说还为时过早,但无论如何还是要谢谢你!!!