【问题标题】:Inno Setup Cleaning up files with certain extensions after installationInno Setup 安装后清理具有某些扩展名的文件
【发布时间】:2017-01-17 12:35:04
【问题描述】:

我在使用 inno setup 安装后遇到了一些剩菜问题。

我在[FILE] 部分设置了Flags: deleteafterinstall,它工作正常,直到我添加了一些代码,在安装期间将目标文件夹重命名为不同的名称,从那时起,Inno Setup 将所有带有该标志的文件保持不变看起来很乱。

作为解决方案,我创建了这个简单的批处理文件,我在安装结束时通过[CODE] 部分运行该文件。

Clean_Up.bat:

del /s /f *.rej
del /s /f *.orig
del /s /f sed*
del /s /f *.patch
del /s /f *.exe
del /s /f *.bat

我是这样复制这批的:

[FILE]
Source: "{#CompPath}\BatchFiles\Clean_Up.bat"; DestDir: "{app}\subfolder"; Flags: deleteafterinstall

我用这个来启动它:

[RUN]
Filename: "{app}\res_mods\Clean_Up.bat"; flags: runhidden;

问题是这个批处理应该也清理 .batch 文件,结果是CleanUp.bat 也被删除了,这是不需要的。

我想通过将其复制到 {app} 而不是 {app}\subfolder 来解决这个问题,并将批处理文件编辑到这个:

del /s /f subfolder\*.rej
del /s /f subfolder\*.orig
del /s /f subfolder\sed*
del /s /f subfolder\*.patch
del /s /f subfolder\*.exe
del /s /f subfolder\*.bat

但是它给了我错误:The system cannot find the file specified.

有人可以告诉我如何让它工作吗?我认为最好的方法是用pascal代码重写这个批处理并放在代码部分,但我不知道如何。

【问题讨论】:

  • 为什么还要重命名文件夹?为什么不直接安装文件哟res_mods
  • 必须彻底修改安装程序安装到该文件夹​​的方式。我们现在有一种情况,有三个不同的客户端版本,我想支持它们。以前没有问题,但现在我必须处理一个新情况,所以我现在正在寻找一个最简单快捷的解决方案,然后再进行返工。
  • 我的回答有帮助吗?还是你需要别的东西?

标签: inno-setup


【解决方案1】:

在您运行批处理文件的那一刻,子文件夹已被重命名。所以你需要使用新名称:

del /s /f res_mods\*.rej
del /s /f res_mods\*.orig
...

或使用WorkingDir parameter 运行子文件夹中的批处理文件:

[Run]
Filename: "{app}\clean_up.bat"; WorkingDir: "{app}\res_mods"; Flags: runhidden;

然后就可以使用原来的批处理文件了:

del /s /f *.rej
del /s /f *.orig
...

您也可以通过直接在[Run] 部分中直接执行del 命令来避免使用批处理文件:

[Run]
Filename: "{cmd}"; Parameters: "/C del /s /f *.rej"; WorkingDir: "{app}\res_mods"; \
    Flags: runhidden
Filename: "{cmd}"; Parameters: "/C del /s /f *.orig"; WorkingDir: "{app}\res_mods"; \
    Flags: runhidden
...

虽然就个人而言,当您重命名 [Code] 部分中的文件夹时,我也会删除代码中的文件。为了一致性。

【讨论】:

  • 我发现[RUN] 部分对于这批来说太早了,我将其执行移至[CODE] 部分。我必须把它放在CurStep=ssDonedel /s /f res_mods\*.rej 在代码而不是批处理中的样子?
  • Exec(ExpandConstant('{cmd}'), '/c del ...', ...); 检查Exec 函数的文档。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-20
  • 1970-01-01
  • 2012-09-19
  • 2016-09-27
  • 1970-01-01
相关资源
最近更新 更多