我有一个 PowerShell 脚本,它修改了我在 Inno Setup 安装程序完成后尝试运行的一些首选项文件。尚未找到有效的解决方案。我的目标是将其嵌入到文件或代码中,这样我就不必发送多个文件,只需发送安装程序即可。谢谢!
[Run]
部分。
如果 PowerShell 代码很简单,您可以直接从 PowerShell 命令行使用
-Command
开关: 执行它,无需任何脚本文件
[Run]
Filename: "powershell.exe"; Parameters: \
"-ExecutionPolicy Bypass -Command [System.IO.File]::WriteAllText('my.ini', 'foo=1')"; \
WorkingDir: {app}; Flags: runhidden
-ExecutionPolicy Bypass
:由于您将在不受您控制的系统上执行此操作,因此某些/大多数系统可能具有默认的 PowerShell 设置,从而限制命令的执行。为了克服这个问题,你需要这个开关。
如果您需要脚本文件,则需要“安装”它(例如安装到安装的临时文件夹)并从那里运行它。
[Files]
Source: "setup.ps1"; DestDir: "{tmp}"
[Run]
Filename: "powershell.exe"; \
Parameters: "-ExecutionPolicy Bypass -File ""{tmp}\setup.ps1"""; \
WorkingDir: {app}; Flags: runhidden
(安装程序完成后,临时文件夹会自动删除)