如何在 Inno Setup 安装程序后运行 PowerShell 脚本

Jus*_*lor 4 windows powershell installation inno-setup

我有一个 PowerShell 脚本,它修改了我在 Inno Setup 安装程序完成后尝试运行的一些首选项文件。尚未为此找到有效的解决方案。我的目标是将其嵌入文件或代码中,因此我不必发送多个文件,只需发送安装程序即可。谢谢!

Mar*_*ryl 8

要在安装完成后执行命令,请将条目添加到[Run]部分


如果 PowerShell 代码很简单,您可以直接从 PowerShell 命令行使用-Commandswitch执行它,而无需任何脚本文件:

[Run]
Filename: "powershell.exe"; Parameters: \
  "-ExecutionPolicy Bypass -Command [System.IO.File]::WriteAllText('my.ini', 'foo=1')"; \
  WorkingDir: {app}; Flags: runhidden
Run Code Online (Sandbox Code Playgroud)

关于-ExecutionPolicy Bypass:由于您将在不受控制的系统上执行此操作,因此某些/大多数系统可能具有默认的 PowerShell 设置,从而限制命令的执行。为了克服这个问题,你需要这个开关。


如果您需要脚本,则需要安装它(例如安装到安装的临时文件夹)并从那里运行它。

[Files]
Source: "setup.ps1"; DestDir: "{tmp}"

[Run]
Filename: "powershell.exe"; \
  Parameters: "-ExecutionPolicy Bypass -File ""{tmp}\setup.ps1"""; \
  WorkingDir: {app}; Flags: runhidden
Run Code Online (Sandbox Code Playgroud)

(安装程序完成后,临时文件夹会自动删除)

  • 谢谢,第二种方法完美!我想嵌入整个内容,但我的 PowerShell 脚本已经有很多级别的引号和转义字符,很难将它们转义到另一个级别。 (2认同)